由于C#编绎出来的DLL不是计算机所能直接识别的二进制指令码,需要CLS进行再解释,说到这,我想有些朋友应该知道C#项目需要引用C++编写的DLL时,可以直接引用DLLMPORT来实现调用,而反向的话,C++项目却不能简单靠引用来使用C#编写的DLL。由于C++项目默认配置是没有公共语言运行支持的,因此我们需要更改一些配置,来实现C++项目对C#编写DLL的调用。具体如何操作,我会在接下来的文章中进行说明,以供大家参考。

示例用C#类库文件
、打开Microsoft Visual Studio ,选择文件->新建->项目。
这里写图片描述
、在新建项目窗口中选择其他语言->Visual C#->类库,设置名称:MathDLL,设置解决方案名:MathDLL。
这里写图片描述
、单击确定完成项目创建
、将类Class1重命名为”MathTest“
、为类MathTest添加以下代码: [csharp] view plain copy
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MathDLL
{
public class MathTest
{
public int demoAdd(int x, int y)
{
int sum;
sum = x + y;
return sum;
}
}
} C++客户端程序创建
、打开Microsoft Visual Studio ,选择文件->新建->项目。
这里写图片描述 、在新建项目窗口中选择其他语言->Visual C++->Win 32控制台应用程序,设置名称:MathCon,设置解决方案名:MathCon。 、单击确定,在出现的Win32 应用程序向导的概述对话框中点击下一步。 这里写图片描述 、在应用程序设置中,选择应用程序类型下的控制台应用程序,勾选附加选项下的”预编译头“。 、单击完成创建项目 、将C#编写的DLL文件放置在C++的可执行程序目录 、使用#using引用C#编写的DLL文件MathDLL.dll,具体代码如下: [cpp] view plain copy
#include "stdafx.h"
#using "../debug/MathDLL.dll"
using namespace MathDLL;
int _tmain(int argc, _TCHAR* argv[])
{
int sum,x,y;
x=;
y=;
MathTest ^a = gcnew MathTest();
sum=a->demoAdd(x,y);
sum=x+y;
[cpp] view plain copy
printf("计算结果:%d",sum);
return ;
} 、配置C++项目MathCon的属性配置:添加公共语言运行支持。 、运行结果如下:

最新文章

  1. Python for Infomatics 第14章 数据库和SQL应用一(译)
  2. 【Android Demo】悬浮窗体实现
  3. Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
  4. Activity启动模式 及 Intent Flags 与 栈 的关联分析
  5. TokuDB介绍——本质是分形树(一个叶子4MB)+缓存减少写操作
  6. android 资源文件
  7. IDS 日志分析
  8. USB3.0 和usb 2.0的区别
  9. SpringMVC返回json数据的三种方式
  10. 通过前端sdk 做facebook登录
  11. hdu 6093---Rikka with Number(计数)
  12. mysql常用的操作
  13. 在WebStorm里配置watcher实现编辑less文件时自动生成.map和压缩后的.css文件
  14. 调参必备---GridSearch网格搜索
  15. 什么是web标准??
  16. Asp.net中GridView详解《转》
  17. python 日期创建dir
  18. 详细介绍jQuery.outerWidth() 函数具体用法
  19. 《转载》IntelliJ 2016.2 IDEA 中进行 Java Web 项目开发配置
  20. [JavaScript] 获取数组中相同元素的个数

热门文章

  1. 17. Letter Combinations of a Phone Number[M]电话号码的字母组合
  2. ubuntu DNS 出错,用以下命令可以解决
  3. C++之易混淆知识点四---虚函数与虚继承
  4. ThinkPHP5 (路径优化,路由)
  5. (转)Django学习之 第一章:Django介绍
  6. javascript中手风琴特效
  7. js 屏蔽非数字字符输入
  8. adb屏幕截屏
  9. day 06 数据类型的内置方法[数字类型,字符串类型]
  10. vue 过滤器使用的传参说明