C++调用C#生成的DLL文件的各种问题

时间:2022-10-01 00:56:47

C++调用C#生成的DLL文件:

  首先选择建立一个C#的类库,然后再按照需求编写需要的函数

  之后,对于C++调用过程需要注意的几点:

  1.使用#using <....some.dll>指出DLL文件的位置来调用DLL

  2.using namespace some 方便之后调用函数

  3.Class1 ^c = gcnew Class1();

    gcnew和new的区别(引自百度知道):

    gcnew返回的是一个句柄(Handle),而new返回的是实际的内存地址.

    gcnew创建的对象由虚拟机托管,而new创建的对象必须自己来管理和释放.

  4.编译之后报错:对于C++/CLI错误,见下图的“公共语言运行时支持”

   C++调用C#生成的DLL文件的各种问题

    可能报的另外一个错:clr和MD不兼容,参见下图的 “运行库”

    C++调用C#生成的DLL文件的各种问题

  5.最后一个错误:

fatal error C1189: #error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
  可以这样处理:(MFC的使用 注意这个项目)
  

C++调用C#生成的DLL文件的各种问题

基本上就这么几个问题。
因为今天折腾了5 6 个小时,故做点记录。