Windows移植到x64:MFC x86 DLL实现用于MS Word,Access,DAO的OLE自动化

时间:2013-05-15 21:35:55

标签: c++ windows x86 activex porting

移植到x64:MFC x86 DLL实现用于MS Word,Access,DAO的OLE自动化

几年前我写了一个应用程序,我正在移植到x64。 它由一个使用.Net 1.1的VB.Net GUI和几个非托管C ++ DLL组成。

更新程序进展顺利。 VB.Net程序在.Net 4.0上运行良好,除了一个之外的所有DLL都可以正常运行64位DLL。对于不以64位运行的DLL,我创建了一个存根,它只返回每个函数调用的SUCCESS。

我遇到64位麻烦的DLL使用MFC并使用OLE自动创建MS Word文档并使用DAO更新Access数据库。

由于MS Word和DAO仅在32位上可用,因此我使用DLL Surrogate创建了一个COM服务器来运行代码。我关心的问题是使用指针来回传递参数。

这是我正在使用的示例C ++原型:

DWORD dtmDBaseToTags
    ( IN const struct UserData_t * pzUserData
    , IN struct DataTag_t* pzDataTag
);

此函数使用pzDataTag中的名称从Access数据库中提取数据并将其放入struct pzUserData。

我不认为这会在COM / ActiveX边界上起作用。

如何使用64位指针在32位进程中访问内存?

ActiveX COM服务器DLL是否能够访问64位内存?

将此代码移植到64位的最佳操作步骤是什么?

0 个答案:

没有答案