请问C++写的托管类C#要如何写一个接口给别人调用调用,初次写出来,调用时VS首先提示LoaderLock,然后程序就挂掉了

C#调用C++的dll两种方法(托管与非托管)

C#调用C++的方式分为两种:1非托管的方式进行调用;2采用托管的方式进行调用

一、使用非托管类调用C++dll

1、首先在vs2010新建项目选择win32應用程序并设置为DLL,如下图所示

2、添加MyDLL.cpp源文件其中代码:

extern "C"外部声明,表示函数和变量是按照的方式编译和链接的

__decspec(dllexport)的目的是为了將对应的函数放入到DLL动态库中。

3、设置项目MyDLL->属性->配置属性->公共语言运行时支持->公共语言运行时支持(、\clr)编译,将生成的dll(debug目录下 )

4、新建C#控制台应用程序dllConsoleApplication1添加引用->浏览->选择生成的DLL添加将上文所生成的DLL拷贝到C#应用程序的bin里面然后应用如下方式进行调用:

二、采用托管的方式进行调用C++dll

1、首先在vs2010新建项目选择win32应用程序并设置为DLL,如下图所示

3、使用C++托管类进行封装新增clrClass类。并且点击“解决方案”Φ的项目托管DLL->属性->配置属性->公共语言运行时支持->公共语言运行时支持(、\clr)然后进行编译生成DLL

新建一个C#控制台程序添加引用->浏览->选擇生成的DLL添加。

6、运行C#程序结果如图

不过这样做,在该计算机上所有基於.Net2.0开发都得不到MDA的好处

2.为项目增加一个配置文件.

pass过去之后,程序就挂掉了

你对这个回答的评价是

我要回帖

更多关于 写库调用 的文章

 

随机推荐