実行した.NET アセンブリregasm
がありgacutil
ます。また、 .NET アセンブリを操作できるようにしようとしているCOM 相互運用機能もあります。ただし、.NET パブリック インターフェイスのメソッドを「検出」することはできません。MFC COM DLL は、Visual Studio 2010 でコンパイルしようとすると、メソッドが呼び出されていないと言い続けます。.NET 4.0 フレームワークを使用しています。考え?pDotNetCOMPtr
Encrypt
_SslTcpClientPtr
COM / MFC
extern "C" __declspec(dllexport) BSTR __stdcall Encrypt(BSTR encryptString)
{
CoInitialize(NULL);
ICVTnsClient::_SslTcpClientPtr pDotNetCOMPtr;
HRESULT hRes = pDotNetCOMPtr.CreateInstance(ICVTnsClient::CLSID_SslTcpClient);
if (hRes == S_OK)
{
BSTR str;
hRes = pDotNetCOMPtr->Encrypt(encryptString, &str);
if (str == NULL) {
return SysAllocString(L"EEncryptionError");
}
else return str;
}
pDotNetCOMPtr = NULL;
return SysAllocString(L"EDLLError");
CoUninitialize ();
}
。ネット
namespace ICVTnsClient
{
[Guid("D6F80E95-8A27-4ae6-B6DE-0542A0FC7039")]
[ComVisible(true)]
public interface _SslTcpClient
{
string Encrypt(string requestContent);
string Decrypt(string requestContent);
}
[Guid("13FE33AD-4BF8-495f-AB4D-6C61BD463EA4")]
[ClassInterface(ClassInterfaceType.None)]
public class SslTcpClient : _SslTcpClient
{
...
public string Encrypt(string requestContent) { // do something }
public string Decrypt(string requestContent) { // do something }
}
}
}