2017-11-06 12 views
0

VC++ Win32 콘솔 응용 프로그램을 만들고 DLL을 틱했지만 "변수 내보내기"도 깜박했습니다. 나중에 클래스, 변수 등이 호출 응용 프로그램 ([DllImport ...] 사용)에 내 보내지 않았 음을 알았습니다.Visual Studio (2012) dll을 변경하여 클래스와 변수를 내 보냅니다.

물론 새 DLL을 만들고 "내보내기"옵션을 만들 수 있지만 뒤늦게이를 수행 할 수있는 방법이 있습니까?

답변

0

예, 나중에 변경할 수도 있습니다. 그냥 물건을 내보내고 프로젝트 파일을 비교하는 새 DLL 프로젝트를 만드십시오. 프로젝트 설정 UI에서 작업을 조정할 수도 있지만 더 어려울 수 있습니다.

1

모두 내 보낸 이름을 선언하는 데 착수합니다. __declspec(dllexport).

"내보내기"체크 박스는 단순히 같은 다른 것들 중, 정의 추가 .h 파일 생성

:

#ifdef MYPROJECT_EXPORTS 
#define MYPROJECT_API __declspec(dllexport) 
#else 
#define MYPROJECT_API __declspec(dllimport) 
#endif 

은 그래서 코드에서 나중에 쓸 수 있습니다 :

MYPROJECT_API void MyExportedFunction(); 

을 당신은 또한 수 이 선언을 DLL과 DLL을 사용하는 클라이언트 코드에서 재사용하십시오 (MYPROJECT_EXPORTS은 "내보내기"체크 박스와 상관없이 자동으로 정의됩니다).

나중에 MYPROJECT_API을 생성 할 수는 없지만 쉽게 수동으로 만들거나 내 보낸 함수를 __declspec(dllexport) 다른 방법으로 선언 할 수 있습니다.