本篇中,首先示例讲解如何在C#代码中调用纯C++模块中的内容。
在本例中,C#界面调用C++的加法函数,实现两个字符串的相加。当然,是使用Managed C++为桥梁。实现步骤如下所示:
首先,建立一个纯C++的static library——PureCPPSLib,其中实现一个字符串相加的类。(步骤省略)
class PureCClass PureCClass::PureCClass() LPCTSTR PureCClass::getFirstName() |
第二步,如下所示建立一个托管的DYNAMIC LINK LIBRARY工程——MgdLib.
托管工程中导入PureCPPSLib的lib文件,include类PureCClass的头文件,构造一个托管类——mgClass,实现对类PureCClass的托管包装。该托管类放在namespace MgdLib 中。
namespace MgdLib { public ref class mgClass namespace MgdLib { mgClass::!mgClass() mgClass::~mgClass() String ^ mgClass::FirstName::get() void mgClass::FirstName::set(String^ str) String ^ mgClass::LastName::get() void mgClass::LastName::set(String^ str) String ^ mgClass::JoinName () 然后,建立C#界面工程。C#工程reference引用托管工程生成的MgdLib.dll,并using命名空间MgdLib,就可以实现对托管包装类mgClass的调用了。(为了正确编译,需要调整好三个工程之间的依赖关系) "Connect" Button 的单击函数里添加代码:
|