这是我的另一个问题,也导致了这个问题作为参考: 如何从非托管 C++ 调用托管 C++ 方法
我已经成功创建了一个 C# COM 文件。现在我需要简单解释一下如何在非托管 C++ 中实现它。
我正在关注这个例子,但 c++ 部分很弱。 http://www.codeproject.com/Articles/7859/Building-COM-Objects-in-C
这是我的 COM 文件
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace cSharpRiJHarn
{
[Guid("ED1483A3-000A-41f5-B1BC-5235F5897872")]
public interface DBCOM_Interface
{
[DispId(1)]
String encrypt(string s);
[DispId(2)]
String decrpyt(string s);
}
[Guid("A6BCEC1D-B60C-4c97-B9AD-1FE72642A9F8"),
InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface DBCOM_Events
{
}
[Guid("7C13A8C6-4230-445f-8C77-0CA5EDECDCB5"),
ClassInterface(ClassInterfaceType.None),
ComSourceInterfaces(typeof(DBCOM_Events))]
public class RijndaelLink : DBCOM_Interface
{
public String encrypt(String s)
{
return Rijndael.EncryptString(s);
}
public String decrpyt(String s)
{
return Rijndael.DecryptString(s);
}
}
}
我只想要一个非常基本的示例,将其与非托管代码一起使用。请在您的回答中包括:
- 我需要包含项目还是只包含 COM 的源文件
- 我需要添加参考吗
- 传递字符串并使用 cout 打印出来的一个非常基本的示例。
谢谢你的帮助!