我想在我的 x64 C# 应用程序中使用 x86 dll!在论坛上我读到 com 对象会帮助我!这是我的 ComServerSample。它像 x86 一样编译。
[ComVisible(true)]
public class MyComServer : IMyComSample
{
private dahuaIp.fDisConnect dissconn;
public void con(int lLoginID, StringBuilder pchDVRIP, int nDVRPort, int dwUser)
{
}
public string GetString()
{
dissconn = new dahuaIp.fDisConnect(con);
var zdsc = dahuaIp.CLIENT_Init(dissconn, 0);
return zdsc.ToString();
}
}
[ComVisible(true), Guid("DBE0E8C4-2222-41f3-B6A4-4E2F353D3D05")]
public interface IMyComSample
{
string GetString();
}
这是使用此 com 服务器的测试应用程序
Type CSI = Type.GetTypeFromProgID("ComServerSample.MyComServer");
var COMobj = Activator.CreateInstance(CSI);
MethodInfo method = CSI.GetMethod("GetString", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
var sdfc = method.Invoke(COMobj, null);
当测试应用程序是 x86 时!这两个应用程序工作正常!但是当测试应用程序是 x64 时,会出现 eroor :
由于以下错误,无法获取具有 CLSID {7B9F9A71-8E1B-3470-8A79-EEB4DA9B25A4} 的组件的 COM 类工厂:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
如何解决问题?我需要在 x64 应用程序中使用我的 x86 dll!