'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 |
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 |
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 |
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();
로케일 문자열 길이 (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 |
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;
}
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 |
코드 출처 : 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" 이 모두 ""가 된다.(없어진다.)
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 |
간단한(?) 구조입니다...
메인 윈도의 프로시져 함수는 TApplication 이라는 클래스 안에 갈무리 되어 있으므로,
걱정하실 필요는 없겄습니다. 물론 Application 이라는 '단일 존재(singletone)' 인스턴스의
포인터를 사용하시면 되고, 생성 절차도 위자드에 의해 제네레이팅되므로
기냥 사용하면 됩니다....흠냐...
(이런 방식이 맘에 안 드시면 VCL 사용하지 마시고 개인의 방법을 사용 하시길..)
그리고 예외 처리는 VCL 이 처리 가능한 예외만을 처리가능합니다.
여러분의 개인용 exception 이 있다면, catch() 문을 추가하시던가 해야 할 겁니다.
(거기에 madException 등의 custom 라이브러리를 사용하신다면, 또 틀려지겠지요...)
_
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 |
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 |
basic_string replace 함수 (0) | 2007.08.13 |
---|---|
VCL Example Main Source - Project1.cpp (0) | 2007.08.03 |
Vista 에서 Orcas UAC Elevation 테스트 (0) | 2007.07.12 |
Orcas 베타 버전 압축에 RAR 가??!! (0) | 2007.07.02 |
[VA.C] example for variable number of arguments (0) | 2007.06.18 |
다음 코드를 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 그룹 사용자 계정으로 한번 시도해 보아야 겄다...
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 |