에서 나는 코드 :: 블록 GCC 컴파일러 (V3.4.5)와 함께이 컴파일GCC 수출은 전용 DLL
extern "C"
int __stdcall
MP_GetFactory(gmpi::IMpUnknown** returnInterface)
{
}
... dll을, 그것은 기능을 수출하고 있습니다. 문제 : 함수 이름 장식 결과 DLL을 수출 ...이로드되지
[email protected]
는
MP_GetFactory
나는 약 4 시간 동안이 문제를 연구했습니다 ... 오래된 일반해야한다. 내 생각에 --add-stdcall-alias가 이것을 고치는 옵션이다. 내 코드 :: 블록이 쇼를 기록 ...
mingw32-g ++ EXE -shared -Wl, -. 아웃 IMPLIB = 디버그 \ libGainGCC.a -Wl \ 빈 - DLL OBJ \ 디버그 \ se_sdk3 \ mp_sdk_audio.o obj \ Debug \ se_sdk3 \ mp_sdk_common.o obj \ Debug \ Gain \ Gain.o obj \ Debug \ Gain \ gain.res -o bin \ Debug \ GainGCC.sem --add-stdcall-alias -luser32
.. 그게 올바른 옵션이라고 생각합니다. 그러나 운이 없다. Dependancy Walker는 내 보낸 장식 된 이름 만 표시합니다. __stdcall 대신 __cdecl을 사용하여 일을 처리하고 이름을 내 보낸 다음 함수를 호출하면 호출이 스택을 손상시킵니다 (호출자가 다른 호출 규칙을 예상했기 때문에).