是否必须为每个位版本编译和注册一个 COM DLL?
Does a COM DLL have to be compiled and registered for each bit edition?
是否可以将 COM DLL 编译为 AnyCPU 并与 32 位和 64 位应用程序一起使用?
昨天我开始编写C# COM DLL,以便我的MFC 项目可以使用该DLL。 DLL 本身用于使用 GMail API.
最初我将 DLL 编译为 x86 或 x64 并且我的两个可执行文件都 运行 没问题。
然后我决定将 DLL 更改为编译为 AnyCPU 现在当我的程序运行时它说 Class 未注册.
那么每个Bit版本都要编译DLL吗?
不,你可以保留.DLL编译为"Any CPU"(事实上我当然会尽可能推荐它),但你必须在每个版本的注册表中注册它,例如使用regasm:
64 位:
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe ClassLibrary1.dll /codebase /tlb
32 位:
c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe ClassLibrary1.dll /codebase /tlb
是否可以将 COM DLL 编译为 AnyCPU 并与 32 位和 64 位应用程序一起使用?
昨天我开始编写C# COM DLL,以便我的MFC 项目可以使用该DLL。 DLL 本身用于使用 GMail API.
最初我将 DLL 编译为 x86 或 x64 并且我的两个可执行文件都 运行 没问题。
然后我决定将 DLL 更改为编译为 AnyCPU 现在当我的程序运行时它说 Class 未注册.
那么每个Bit版本都要编译DLL吗?
不,你可以保留.DLL编译为"Any CPU"(事实上我当然会尽可能推荐它),但你必须在每个版本的注册表中注册它,例如使用regasm:
64 位:
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe ClassLibrary1.dll /codebase /tlb
32 位:
c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe ClassLibrary1.dll /codebase /tlb