当前位置: 首页 > news >正文

c++ DLL和c#之间传递字符串

c++代码

 1 extern "C" _declspec(dllexport) bool get(char*& strPorts)
 2 {
 3     string str = "Hello";
 4     int length = str.size() + 1;
 5     strPorts = newchar[length];
 7     strcpy_s(strPorts, length, str.c_str());
 8     return true;
 9 }
10 extern "C" _declspec(dllexport) bool set(char* str)
11 {
12     cout << str << endl;
13     return true;
14 }

 

c#代码

 1     [DllImport("My.dll")]
 2     public static extern bool get(out IntPtr pstrPorts);
 3     [DllImport("My.dll")]
 4     public static extern bool set(string strPorts);
 5     //调用
 6     IntPtr pStr;
 7     get(out pStr);
 8     System.Console.WriteLine(Marshal.PtrToStringAnsi(pStr));
 9 
10     string str="Hello";
11     set(str);

 

 

因为set里面传递的指针是空的,需要dll来new,百度了好久才找到解决方案。

转载于:https://www.cnblogs.com/mandaren/archive/2012/09/09/2677329.html

相关文章:

  • HTML总结2
  • 进行移动电子邮件营销转化率的三个秘诀
  • background-position
  • ROS中测试机器人里程计信息
  • 基于phpExcel写的excel类,供平时方便使用
  • IaaS PaaS SaaS Daas
  • Java8 Arrays.sort VS Arrays.parallelSort应用实例源码教程
  • Facebook iOS 新版开发手记:两倍速度的背后(转)(参考)
  • Azure ARM创建和部署自定义操作系统映像
  • 维基百科新增电子书导出功能,方便离线阅读
  • CentOS6.9安装LAMP(Centos6.9+Apache2.2.15+mysql5.1.73+php5.3.3)
  • MFC禁止改变窗口大小和移动窗口
  • 人月神话6
  • Windows下编译项目 ckcore ckfilesystem
  • HTML5、canvas、SVG
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [数据结构]链表的实现在PHP中
  • 【RocksDB】TransactionDB源码分析
  • Angular 2 DI - IoC DI - 1
  • extract-text-webpack-plugin用法
  • Java到底能干嘛?
  • JSONP原理
  • k8s如何管理Pod
  • Lucene解析 - 基本概念
  • Redis 懒删除(lazy free)简史
  • SAP云平台里Global Account和Sub Account的关系
  • Theano - 导数
  • 成为一名优秀的Developer的书单
  • 对JS继承的一点思考
  • 聊聊sentinel的DegradeSlot
  • 前端_面试
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何进阶一名有竞争力的程序员?
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 三栏布局总结
  • 使用agvtool更改app version/build
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​secrets --- 生成管理密码的安全随机数​
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #Z2294. 打印树的直径
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (0)Nginx 功能特性
  • (windows2012共享文件夹和防火墙设置
  • (办公)springboot配置aop处理请求.
  • (二)linux使用docker容器运行mysql
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • *上位机的定义
  • .bat批处理(六):替换字符串中匹配的子串