C, C++2007. 9. 8. 20:37
반응형
반응형

'C, C++' 카테고리의 다른 글

C++ 구조체 멤버의 오프셋 얻기  (0) 2007.10.12
VC 2005 REDIST  (0) 2007.10.11
32비트 윈도우즈에서의 자료형  (2) 2007.09.04
API함수 IsWindowUnicode  (0) 2007.08.28
2의 n배승의 수인지 알아 보는 예제  (0) 2007.08.13
Posted by Jay Two
C, C++2007. 9. 4. 17:01
반응형

오늘 32비트 윈도우즈에서의 자료형에 관련한 간단한 질문을 받았습니다.
의외로 이런 걸 헷갈려려 하시는 분들이 계신 것 같은데, 매우 간단합니다.

1 바이트의 정수 자료형 (부호/무부호) : char, unsigned char, signed char, byte

2 바이트의 정수 자료형 (부호/무부호) : short, unsigned shor

4 바이트의 정수 자료형 (부호/무부호) : int, unsigned int, long, unsigned long, dword

float 자료형 (4=1+3 바이트)

double 자료형 (8=1+7 바이트)

간단히 간추리면 위와 같은 형태가 다입니다.
부호는 물론 상위 1 비트를 사용하고 있습니다.
c 나 pascal 계열 등에서의 포인터 처리는 물론 32비트 윈도 이므로 2^32 입니다.
반응형

'C, C++' 카테고리의 다른 글

VC 2005 REDIST  (0) 2007.10.11
로케일 문자열 길이  (0) 2007.09.08
API함수 IsWindowUnicode  (0) 2007.08.28
2의 n배승의 수인지 알아 보는 예제  (0) 2007.08.13
basic_string replace 함수  (0) 2007.08.13
Posted by Jay Two
C, C++2007. 8. 28. 09:22
반응형

BOOL IsWindowUnicode(
  HWND hWnd  
// handle to window
);

기능
 : 유니코드가 지원되는 윈도우인지 아닌지를 윈도 핸들값으로 검사한다.

반환값
 : 지원 가능 / 불가

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::IsWindowUnicode() to determine if the window is a 
//UNICODE window or an ANSI one.

CWindow myWindow;
myWindow.Attach(hWndFoo);
BOOL bUnicode  = myWindow.IsWindowUnicode();
반응형

'C, C++' 카테고리의 다른 글

로케일 문자열 길이  (0) 2007.09.08
32비트 윈도우즈에서의 자료형  (2) 2007.09.04
2의 n배승의 수인지 알아 보는 예제  (0) 2007.08.13
basic_string replace 함수  (0) 2007.08.13
VCL Example Main Source - Project1.cpp  (0) 2007.08.03
Posted by Jay Two
C, C++2007. 8. 13. 17:43
반응형

gnu c 에는 log2() 라는 함수가 있어서 이를 쉽게 해결할 수 있습니다.
하지만 windows 표준 수학 함수에는  없습니다. (닷넷용으로 일부 있기는 한데...)
그래서, log() 함수를 아래와 같이 엮어서 사용해야 합니다.

사용자 삽입 이미지

즉, log 2(8) 은 log(8) 값을 log(2) 로 나눈것이므로, 함수를 두번 호출해야 합니다.

// 예제 - 2 의 n 배승인 수인지의 검사

#include <math.h>
#include <limits.h>
#include <windows.h>
#include <stdio.h>

int main()
{
  int i = 0;
 int j = 0;
 double t = 0;
 int q = 0;
 int r = 0;
 double y = 0;
 int p = 0;

 for ( i = 2 ; i < INT_MAX ; i++ )
 {
  t = log((double)i) / log((double)2);
  q = (int)( log((double)i) / log((double)2) );

  r = (int) ceil( t );

  p = (int) pow( 2, r );

  if ( i == p )
  {
   printf( "%d", i ); // it's a 2 power number!!
  }
 }

   return 0;
}

 

반응형

'C, C++' 카테고리의 다른 글

32비트 윈도우즈에서의 자료형  (2) 2007.09.04
API함수 IsWindowUnicode  (0) 2007.08.28
basic_string replace 함수  (0) 2007.08.13
VCL Example Main Source - Project1.cpp  (0) 2007.08.03
vc6redist  (0) 2007.07.31
Posted by Jay Two
C, C++2007. 8. 13. 14:45
반응형

코드 출처 : http://serious-code.net/moin.cgi/CppSnippets#head-67a3dc71a5d61e307da4c357cb0156c6fe12a68

/// \brief 주어진 문자열 내에 존재하는 문자열을 다른 문자열로 치환한다.
/// \param text 원본 문자열
/// \param find_token 찾고자 하는 문자열
/// \param replace_token 치환하고자 하는 문자열

void replace(std::string& text, const std::string& find_token, const std::string& replace_token)
{
    size_t i = 0;
    while ( (i = text.find(find_token)) != std::string::npos )
        text.replace(i, find_token.size(), replace_token);
}



사용 예제>

 std::string str1 ;
 std::string str2 ;
 std::string strFind ;
 std::string strReplace ;

 str1 = "hello\tworld\r\n123\n456";
 str2 = str1 ;

 strFind    = "\r\n";
 strReplace = "";

 replace( str1, strFind, strReplace ); // 문자열 내부 "\r\n" 이 모두 ""가 된다.(없어진다.)

반응형

'C, C++' 카테고리의 다른 글

API함수 IsWindowUnicode  (0) 2007.08.28
2의 n배승의 수인지 알아 보는 예제  (0) 2007.08.13
VCL Example Main Source - Project1.cpp  (0) 2007.08.03
vc6redist  (0) 2007.07.31
Vista 에서 Orcas UAC Elevation 테스트  (0) 2007.07.12
Posted by Jay Two
C, C++2007. 8. 3. 21:55
반응형

 


 간단한(?) 구조입니다...
 메인 윈도의 프로시져 함수는 TApplication 이라는 클래스 안에 갈무리 되어 있으므로,
걱정하실 필요는 없겄습니다. 물론 Application 이라는 '단일 존재(singletone)' 인스턴스의
포인터를 사용하시면 되고, 생성 절차도 위자드에 의해 제네레이팅되므로
기냥 사용하면 됩니다....흠냐...
(이런 방식이 맘에 안 드시면 VCL 사용하지 마시고 개인의 방법을 사용 하시길..)
 그리고 예외 처리는 VCL 이 처리 가능한 예외만을 처리가능합니다.
여러분의 개인용 exception 이 있다면, catch() 문을 추가하시던가 해야 할 겁니다.
(거기에 madException 등의 custom 라이브러리를 사용하신다면, 또 틀려지겠지요...)

 


_

 


반응형

'C, C++' 카테고리의 다른 글

2의 n배승의 수인지 알아 보는 예제  (0) 2007.08.13
basic_string replace 함수  (0) 2007.08.13
vc6redist  (0) 2007.07.31
Vista 에서 Orcas UAC Elevation 테스트  (0) 2007.07.12
Orcas 베타 버전 압축에 RAR 가??!!  (0) 2007.07.02
Posted by Jay Two
C, C++2007. 7. 31. 09:02
반응형

vc6redist 의 lastest version 이라고는 해도 이미 수년전의 것인지라
'최근'이라는 용어가 애매할 것 같습니다만, 그래도 최근은 최근이므로...적어 봅니다.

vc6sp4 이상의 vc6redist 는 서비스팩에만 포함되므로(
http://support.microsoft.com/kb/259403)
서비스팩안의 것을 기준으로 합니다. (
http://www.microsoft.com/downloads/details.aspx?familyid=a8494edb-2e89-4676-a16a-5c5477cb9713&displaylang=en)

 

Description

File Version

Product Version

atla.dll

ATL 3 (Ansi)

3.0.9782.0

6.00.9782

atlu.dll

ATL 3 (Unicode)

3.0.9782.0

6.00.9782

mfc42.dll

MFC 6 Retail (Ansi)

6.0.9782.0

6.0.400

mfc42u.dll

MFC 6 Retail (Unicodei)

6.0.9782.0

6.0.400

msvcirt.dll

Runtime library

6.0.9782.0

6.0.9782.0

msvcp60.dll

Runtime library

6.0.8972.0

6.0.8972.0

msvcrt.dll

Runtime library

6.0.9782.0

6.0.9782.0


주의 사항>
 동일한 PC 에 VC6 와 VC-Orcas(또는 2005)를 설치시 msvcrt.dll 의 버전 충돌 문제가
 발생할 수 있다. 이는 추가된 보안 템플릿 함수 등이 하위 버전에서는 당연히 지원되지 않음에 따라
하위 버전 윈도에서 활용하려면 묵시적 링크(implied linkage) 충돌 문제가 발생한다.




반응형
Posted by Jay Two
C, C++2007. 7. 12. 23:09
반응형

다음 코드를 Orcas 와 Vista 에서 테스트해 보았다.

 SYSTEMTIME sTime;
 GetLocalTime( &sTime );

if ( SetLocalTime(  &sTime ) )
{
  AfxMessageBox( _T("Success") );
 }
 else
 {
  AfxMessageBox( _T("Failed") );
 }


 당연히 SetLocalTime() 이라는 높은(또는 관리자 수준의) 권한을 요구하는
함수를 호출하였기에 당연히 Failed 처리가 된다.
 하지만, manifest 에서 UAC 를 높게 책정하면 달라진다.
물론 실행 시에, UAC 권한 상승에 관한 메세지 박스가 뜨며, 허용을 해야만
정상적인 처리가 된다.
 그 결과를 요약해 보면 다음처럼 나타난다.

 // 1) asInvoker (Failed)
 // 2) highestAvaiable (Success)
 // 3) requiredAdministrator (Success) 

 그리고, 사용자 계정은 administrator 그룹에 속하는 사용자 계정이었다.
의외인 것은 requiredAdministrator 일때만 처리될 줄 알았는데, highestAvaiable 에서도
가능했다는 점이다.
 다음에는 admin 그룹 계정 사용자가 아닌 user 그룹 사용자 계정으로 한번 시도해 보아야 겄다...


반응형

'C, C++' 카테고리의 다른 글

VCL Example Main Source - Project1.cpp  (0) 2007.08.03
vc6redist  (0) 2007.07.31
Orcas 베타 버전 압축에 RAR 가??!!  (0) 2007.07.02
[VA.C] example for variable number of arguments  (0) 2007.06.18
overloading on the c++  (0) 2007.06.14
Posted by Jay Two