[occam's Razor 홈으로]
     
 

이 게시판은 더 이상 사용하지 않습니다. 번역서 질문&의견 페이지를 보세요.



  염원영(2012-06-14 08:31:10, Hit : 10540, Vote : 3399
 번역된 책보다 궁금한 점이 있어 문의 드립니다.




Windows 시스템 프로그래밍 4판 번역서 잘 보고 있습니다.
그런데 193페이지,194페이지에 일부 내용이 잘 실행이 되지 않아서 문의드립니다.
DLL 을 export,import 할 때 자동으로 전처리문 (dll이름_EXPORTS) 이
자동으로 만들어진다고 했는데 아무리 시도해 봐도 안되네요.
이 내용은 저도 처음 안 건데... 테스트는 Visual Studio 2010 으로 했습니다.

원래 내용이 잘못된건지 아니면 번역하실때 오역이 있었는지 모르겠습니다.
원서 내용이 어떻게 된건지 궁금하네요.
확인 부탁드립니다.



류광 (2012-06-14 17:52:17)  
프로젝트 설정에 뭔가 문제가 있는게 아닐까요...

VC++2010 Express에서 잠깐 테스트해 보았는데(번역 당시에는 아마 2008을 사용했었을 것입니다), dlltest라는 DLL 프로젝트를 만들고 '프로젝트 속성 페이지 - 구성 속성 - C/C++ - 전처리기 - 전처리기 정의 항목'을 보니 실제로 DLLTEST_EXPORTS 가 있습니다.

이런 식으로 점검할 수도 있습니다. 자동 생성되는 dlltest.h를 다음과 같이 변경하고

#ifdef DLLTEST_EXPORTS
char a[-1]; // 추가 - 여기서 컴파일 오류
#define DLLTEST_API __declspec(dllexport)
#else
#define DLLTEST_API __declspec(dllimport)
#endif

프로젝트를 빌드했을 때 a[-1]에서 컴파일 오류가 난다면 DLLTEST_EXPORTS가 정의되어 있는 것인데요. 실제로 오류가 납니다.

프로젝트를 다시 새로 만들어서 한 번 시험해 보세요~
염원영 (2012-06-20 08:29:45)
원래 책 내용이 좀 애매해서 오해가 갈 수 있는 것 같습니다.

VC 에서 DLL 프로젝트 만드는 방법이 3가지가 있더라구요.
Win32 DLL, MFC 정규 DLL, MFC 확장 DLL 을 만들 수 있는데
저의 경우는 현재 MFC 확장 DLL 을 만들어서 사용하고 있습니다. 그래서 프로젝트 설정에 DLL이름_Exports 가 들어가 있지 않더라구요.

Win32 DLL 의 경우에만 새로 프로젝트를 만들때 프로젝트 속성에
Exports 전처리문이 추가될 수 있도록 되어 있고요.
컴파일 할 때 결국 자동으로 만들어주지 않는 것 같습니다.

제가 책의 내용을 잘 못 이해 한건지 모르겠습니다.
원서 내용을 함 보고 싶네요.
류광 (2012-06-20 22:58:41)  
그렇군요.... 원서에 MFC에 대한 언급은 전혀 없습니다.

혹시 The C++ Standard Library 2nd 번역하실 생각 없으신가요? [1]
류광님은 개발자세요? [3]

Copyright 1999-2018 Zeroboard / skin by zero

이동

메인 페이지

번역서 정보

번역 이야기

문서 창고

자유 게시판

방명록

     

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0