2010-05-05 2 views
1

다음 기능을 변환 중입니다. 그러나 새로운 변환 된 함수는 실행되지 않습니다. 어떤 아이디어?__declspec을 _export C++로 변환하십시오.

올드 기능
통근자 "C"
DWORD의 __declspec (dllexport) FAR Func라고 (숯불 *의 값 1, INT의 *의 값 2)

새로운 기능
통근자 "C"
DWORD _export FAR Func라고 (문자 * value1, int * value2)

+0

어떤 오류가 있습니까? 디버거를 사용하여 단계별 실행을 시도 했습니까? –

+0

'__declspec (dllexport) '의 문제점은 무엇입니까? '_export' 정의는 무엇입니까? 올바른 DLL을 사용하고 있는지, 기호를 내 보낸 지 확인하십시오. – jweyrich

+0

문제가 해결되었습니다. 이 프로그램은 Delphi C++ 빌더로 작성되었습니다. 프로그램을 컴파일 할 때 컴파일러는 해당 함수에 대한 특정 인덱스를 제공합니다. 하지만 고정 인덱스를 사용하여 그 함수를 호출했습니다. 고마워. – sMah

답변

1

_export는 최신 버전의 Visual C++에서 더 이상 사용되지 않습니다 (here 참조).

this article을 인용 보자 : 단순히 _declspec()가 스토리지 클래스 한정자이기 때문에 _declspec() 및 __export로 __export 교체하여 16 비트 및 32 비트 코드는 유형에 대한 단일 소스를 유지하는 것은 불가능합니다 수식어.이 기사에서는 _export가 16 비트 프로그램에서만 작동한다는 것을 설명합니다. 따라서 실제로 16 비트 프로그램과 DLL을 생성해야합니다.

+0

답변과 정보를 보내 주셔서 감사합니다. – sMah

+0

여기에있는 모든 링크는 존재하지 않습니다. – ebyrob

관련 문제