我有我目前利用COM類包裝C#調用非託管DLL。編組在通過ComInterop C#非託管的DLL而無需註冊DLL
[ComImport(), Guid("75E81043-CAD5-11D3-800D-00105A5E2FA0")]
public class MyObject { }
[ComImport(), Guid("75E81042-CAD5-11D3-800D-00105A5E2FA0"),
InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface MyInterface
{
string EncryptString([In, MarshalAs(UnmanagedType.BStr)] string bstrOrginal);
}
然後調用:
MyInterface obj = (MyInterface)new MyObject();
string crypt = obj.EncryptString("something");
這工作,返回值是如我所料。但是,它要求該DLL註冊regsvr32。
我正在尋找一種方式來做到這一點,而無需REGSVR32的要求。最好,只需要有一個可用的DLL的副本。值得注意的是,我有非受管dll的來源,並且有必要修改它。
向正確的方向推,將不勝感激。
這可能有所幫助:http://msdn.microsoft.com/en-us/library/windows/desktop/ms694515(v=vs.85).aspx – 2012-01-06 01:18:23
我有很多的閱讀工作要做,但我會試試這個。謝謝。 – Jon 2012-01-06 01:56:23