我有一個64位的DLL其中出口功能LoadLibraryEx:參數迷失在64位
__cdecl int (*function)(IN wchar_t* file, OUT VARIANT &htmlFile, IN wchar_t* path);
其作爲
int CShellWrapperx64Module:function(wchar_t* file, VARIANT &htmlFile, wchar_t* path) {
VariantInit(&htmlFile);
htmlFile.vt = VT_BSTR;
htmlFile.bstrVal = ::SysAllocString(L"");
return 0;
}
實現和64位的DLL它調用函數
function pfunction = (function)GetProcAddress(hMod, MAKEINTRESOURCEA(0x0001));
TCHAR m_file[MAX_PATH];
VARIANT vhtml;
VariantInit(&vhtml);
pfunction(m_file, vhtml, path);
在32位模式下函數調用成功,但在64位模式下達到函數入口點,但參數ar e無效?我能做什麼?
如果'LoadLibraryEx'不在你的代碼示例中,並且你說'GetProcAddress'調用成功了,那究竟是什麼? – Necrolis
可能與x64沒有__cdecl這一事實有關? – hamstergene