我有一个导出函数的 64 位 DLL
__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 位模式下,到达函数入口点但参数无效?我能做什么?