如何向C#应用程序公开C++方法?

Geo*_*ton 2 interop visual-c++

我目前正在学习VC++.我创建了一个具有阻止/允许IP地址功能的应用程序,我想将此功能公开给C#应用程序.

我在头文件中定义了以下成员,这些成员引用了我的.cpp文件中需要在我的应用程序之外访问的方法.

public:

// Constructor.
ZizFilter();

// Destructor.
~ZizFilter();

BOOL StartFirewall();
BOOL StopFirewall();

BOOL AddIPAddressToBlockedList(char* IP)
BOOL RemoveIPAddressFromBlockedList(char* IP)

BOOL BlockAll(char* tunnelAddress);
BOOL UnblockAll();
Run Code Online (Sandbox Code Playgroud)

我理解C#Interop方面以及如何使用公开的汇编方法,但我不知道如何让我的C++应用程序公开公开方法.

mor*_*lli 6

解决这个问题的一种方法是在C++ CLI中编写一个包装器 - 这是c ++的一个版本,它被扩展为管理.net的东西.

您可以在C++ cli中创建一个托管或"ref"类,它将显示为c#的普通.net类.

在c ++ cli类中,您可以正常调用纯c ++类.