Visual Studio 2013 의 너무나 뛰어난 최적화 기능에 감탄을 금치 못했습니다.
( 작년까지만해도 2008 을 사용하고 있어서 전혀 몰랐습니다만... )
Thread Local Storage(TLS) 를 넣었는데, 이것이 최적화되어 사라져버리는 현상이 일어났습니다 !
문제의 코드
#include <windows.h>
#pragma comment(linker,"/INCLUDE:__tls_used")
void __stdcall callback_func(...){ MessageBoxA(NULL,"Hello world",NULL,MB_OK); }
#pragma data_seg(".CTR$XLB") PIMAGE_TLS_CALLBACK p_tls = callback_func; #pragma data_seg()
int main(void){ system("pause"); return 0; }
|
혹시 문제를 발견하셨나요 ?
문제는 . . .
프로그램 진입점(main) 함수 이하로 p_tls 변수가 사용된 흔적이 없어
p_tls 변수와 callback_func 함수가 최적화로 사라집니다 !!
이 너무나 훌륭한 최적화 기능에 1시간동안 씨름에 붙었습니다 -_- ; ; ;
해결 방법은 ?
솔루션 탐색기 창을 통해 단일 파일의 경우 위와 같이 파일 하나를 오른쪽 마우스 클릭하거나
프로젝트 혹은 솔루션 크기일 경우 프로젝트나 솔루션을 오른쪽 마우스 클릭해서
속성을 들어간 후
'C/C++ > 최적화 > 전체 프로그램 최적화' 를 '예(/GL)' 에서 '아니요' 로 변경하시면 됩니다.
네이버 카페 배경음악 끄는 방법 외 여러가지. (2) | 2015.10.15 |
---|---|
성기사 디코드 루틴. (0) | 2015.09.19 |
오시오키나마이키갸루 암호화 루틴 (0) | 2015.08.31 |
gotoxy in windows python (0) | 2015.08.30 |
네○파라 vol.0 암호화 루틴 (0) | 2015.08.20 |
|
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |