C++ Win32 응용 프로그램으로 만든 DLL이 있습니다. 내 DLL에서 맹 글링 이름을 방지하기 위해, 내가 아래에 정의 된 내보내기 정의를 사용하고 있습니다 : 컴파일이 코드를 얻으려면extern "C"DLL : 디버그는 정상입니다. 릴리스는 C2059 오류를 throw합니다.
#ifndef EXPORT
#define EXPORT extern "C" __declspec(dllexport)
#endif
EXPORT int _stdcall SteadyFor(double Par[], double Inlet[], double Outlet[]);
을, 나는 프로젝트의 속성에 가서합니다 (C/C++ Calling Convention
-__stdcall을 설정했다/Gz) 및 Compile As
을 으로 설정하십시오. C++ 코드 (/ TP)으로 컴파일하십시오.
디버그 모드에서 작동하지만 릴리스 모드 설정을 디버그 설정과 동일하게 구성하더라도 모든 내보내기 기능에 릴리스 모드가 error C2059: syntax error: 'string'
이됩니다.
릴리스 모드를 컴파일하려면 어떻게해야합니까?
감사합니다,
~ 조
은 (비주얼 스튜디오 2008 프로페셔널에서 개발)
편집 :
문제를 일으킬 수 나타나지 않습니다 내 #DEFINE, 대한 의견을 많이합니다.
#ifndef coilmodel_h
#define coilmodel_h
extern "C" __declspec(dllexport) int _stdcall steadyFor(double Par[], double Inlet[], double Outlet[], char* FileIn, char* FileOut);
#endif
그것의 모든 즉.
오류 : 릴리스 모드에서coilmodel.h
라인4
다시 말하지만,이 오류 만 나타납니다
설명error C2059: syntax error: 'string'
파일이 아닌 디버그 모드.
프로젝트는 C++ Win32 DLL 응용 프로그램입니다.
게시 한 코드가 문제와 관련이 없다고 생각합니다. 해당 줄에 대한 코드를 게시 할뿐만 아니라 어떤 줄 초크를 알려주시겠습니까? 게시 된 코드에서 릴리스 모드로 정의 된 내보내기가없는 것처럼 보입니다. –
위의 '수정'섹션을 참조하십시오. 나는이 모든 것을 여기서 설명 할 수 없었다. – jp2code