最近做一个信息化三维仿真项目,基于第三方提供的虚拟引擎通过VC++2008做二次开发,其中涉及到与C#客户端的融合以及数据交互的问题,

主要是VC++需要调用C#客户端提供的类库内的接口获取C#客户端内的数据。

VC++内调用C#提供的动态库函数的方法,首先在引用的源文件添加相关的文件引用以及命名空间:

#using "D:\winCe\Debug\TestInterface.dll"
using namespace TestInterface;
using namespace std;
using namespace System;
using namespace System::Runtime::InteropServices;
在具体的调用函数中,本文测试直接在控制台程序的主函数中进行调用:
int _tmain(int argc, _TCHAR* argv[])
{
TestInterface::TestInterfaceClass ^ptr = gcnew TestInterface::TestInterfaceClass();//初始化接口类
ptr->Initialize();//因为是两个进程直接所以涉及到一些基础数据的初始化
string chars = std::string((char*)(int)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(ptr->GetTestInfo()));//调用接口获取数据(json或xml) return ;
}

这样就能实现在VC++中调用C#类库函数达到相关交互工作,当然不同进程的交互还有其他很多方式如共享内存,socket通信。根据不同的项目需求

选择不同解决方案。

C++调用C#类库函数的更多相关文章

  1. 利用C#的反射机制动态调用DLL类库

    最近由于业务要求,需要动态调用DLL类库,所以研究了一下,感觉还好也不太难,今天就把自己理解的写了一个小例子(已经通过VS2005跑通),供大家一起研究和探讨,有理解不当的地方还请高手们多多指正,谢谢 ...

  2. 教你看懂C++类库函数定义之三---_stdcall

    一切从一个C++ 类库头文件开始,现在在做一个C++的项目,期间用到一个开源的界面库DUILib(类似MFC),这个东西还不错能很容易的写出漂亮的界面,比如QQ的界面,可以去下载下来研究研究,地址:h ...

  3. 在SQL Server中使用CLR调用.NET类库中的方法 (转载)

    在SQL Server中调用 .NET 类库的方法要分为下面几步来实现: 在.NET中新建一个类库项目,并在这个项目中添加一个类文件,并把要被SQL Server调用的方法定义为公有的,静态的方法. ...

  4. C#调用C++类库的几种方式

    1.  直接调用C++类库中的公共方法 使用DllImport特性对方法进行调用,比如一个C++类库SampleCppWrapper.dll中的公共方法: extern "C" _ ...

  5. 学习使用Delphi for android 调用Java类库

    http://blog.csdn.net/laorenshen/article/details/41148253 学习使用Delphi for android 调用Java类库 2014-11-15 ...

  6. ASP.NET后台调用前台JS函数的三种常见方法

    第一种:使用普通的添加控件中的Attributes属性进行调用 例如,像一般的普通的按钮:Button1.Attributes.Add("onclick","MyFun( ...

  7. unity中三种调用其他脚本函数的方法

    第一种,被调用脚本函数为static类型,调用时直接用  脚本名.函数名()第二种,GameObject.Find("脚本所在的物体的名字").SendMessage(" ...

  8. MyEclipse调用Matlab打包函数

    本文部分内容参考了http://www.360doc.com/content/15/1103/16/1180274_510463048.shtml 一.检查Java环境 对于已经装上JAVA环境的计算 ...

  9. java 调用 C# 类库搞定,三步即可,可以调用任何类及方法,很简单,非常爽啊

    java 调用 C# 类库搞定,三步即可,可以调用任何类及方法,很简单,非常爽啊 java 调用 C# 类库搞定,可以调用任何类及方法,很简单,非常爽啊 总体分三步走: 一.准备一个 C# 类库 (d ...

随机推荐

  1. linux局域网通过映射(双网卡)访问外网

    图示说明: 1.IP规划设置 主机名 ip地址 ip地址(第二个网卡配置的地址) 地址类别 oldboy01 192.168.10.20 空 仅可访问内网主机 oldboy02 192.168.10. ...

  2. 教父郭盛华透露:PHP编程语言中多个代码执行缺陷

    黑客无处不在,知名教父级网络安全专家郭盛华透露:“PHP编程语言其核心和捆绑库中的多个高严重性漏洞,其中最严重的漏洞可能允许黑客远程攻击者执行任意代码并破坏目标服务器. 超文本预处理器,通常称为PHP ...

  3. 用C语音编写python的扩展模块,也就是python调c库

    用C语音编写python的扩展模块,也就是python调c库   1.用C语言扩展Python的功能: http://www.ibm.com/developerworks/cn/linux/l-pyt ...

  4. Windows Server2008R2蓝屏,分析dmp文件

    使用Windbp PreView打开dmp文件后,在命令栏输入如下命令: !analyze -v 解析结果中蓝色字体为错误原因分析

  5. Docker(二):Docker入门教程

    前言 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 ...

  6. spring mvc 数据校验(bean实体注解实现)

    spring mvc 数据校验 1.添加个jar (jar与一版本会冲突) <dependency> <groupId>com.fasterxml</groupId> ...

  7. php array_unshift()函数 语法

    php array_unshift()函数 语法 作用:用于向数组插入新元素.新数组的值将被插入到数组的开头.富瑞华 语法:array_unshift(array,value1,value2,valu ...

  8. Java——网络

    [通信协议分层]   (1)为什么要分层?  

  9. 使用 Python 实现多进程

    w 使用 Python 实现多进程https://www.ibm.com/developerworks/cn/aix/library/au-multiprocessing/

  10. java操作solr

    <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</a ...