C++ 通过DLL调用C#代码
来源:互联网 发布:绘画录屏软件 编辑:程序博客网 时间:2024/05/16 16:23
本文将介绍C++中通过DLL来调用C#代码。
首先建立C#的“类库”工程CShapeDLL。
然后输入如下代码:
这里有两个类,一个是MyAddClass类,是用来做加法运算的,另一个是CMyWriteLine,用来输出文本的。
然后以C++控制台程序为例,C++代码如下:
编译,出错。提示如下:
fatal error C1190: 托管目标代码需要“/clr”选项
好吧,修改下,在“属性”->“配置属性”->“常规”->“公共语言运行库支持”中选取“公共语言运行库支持(/clr)”
再编译,又出错!提示如下:
1>正在编译...
1>cl: 命令行error D8016 :“/MTd”和“/clr”命令行选项不兼容
1>项目: error PRJ0002 : 错误的结果2 (从“e:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe”返回)。
好吧,再修改下,“属性”->“配置属性”->“C/C++”->“代码生成”->“运行时库”中选取“多线程DLL (/MD)”。
如果出现现下问题
1>------ 已启动生成: 项目: test, 配置: Debug Win32 ------
1>正在编译...
1>win321.cpp
1>e:\vs2005\vc\atlmfc\include\afx.h(24) : 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]
再编译,成功了。运行下,又出错了——“应用程序发生异常未知的软件异常(0xe0434f4d),位置为 0x7c812fd3“。
这个怎么解决了,很简单,这是因为EXE程序没能加载到DLL文件导致的,将CShapeDLL.dll拷贝到EXE程序所在目录下,再运行,成功了。结果如下图所示(WinXP及Win7均可以运行):
- C++通过DLL调用C#代码
- C++通过DLL调用C#代码
- C++通过DLL调用C#代码
- C++通过DLL调用C#代码
- C++通过DLL调用C#代码
- C++通过DLL调用C#代码
- C++ 通过DLL调用C#代码
- C++通过DLL调用C#代码
- C++通过DLL调用C#代码
- C#调用C++DLL
- C#调用C++dll
- C#调用C++dll
- C#调用C++DLL
- c#调用c++DLL
- C# 调用C++dll
- C#调用C++DLL
- C#调用C++DLL
- C#调用C++DLL
- Nginx 配置笔记
- JUC源码分析19-队列-PriorityBlockingQueue
- 与rxJava的偶遇
- 3D touch
- 黑马程序员----面试题之交通管理系统
- C++ 通过DLL调用C#代码
- Retrofit的简单使用
- 用Redis存储Tomcat集群的Session
- 微信网页开发之video标签[HTML5微信播放器video]
- android6.0 PullToRefreshWebView中的FloatMath.floor()不能用了如何替换
- Linux中不关机扩展磁盘的命令汇总
- Android 百分比布局库
- 关于Java Static 和Final的详细阐述
- 工欲善其事必先利其器——Android Studio使用技巧与快捷键