注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

C#调用C++DLL的总结9——DLL与c#互传指针再谈结构体内部字符串指针的简单传  

2014-04-09 10:46:57|  分类: NET(C#) |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

C#调用C++DLL的总结9——DLL与c#互传指针再谈结构体内部字符串指针的简单传

在前面“C#调用C++DLL的总结3补——DLL与c#互传指针”,说明了可以通过分配指针空间的方式来传递字符串指针。诸如下面的样子:

C++ DLL:

Typdef struct __TestData

{

         Int t0;

    Char *p0;

}TestData;

__USBLIB_DLL_ void __stdcall MyTestChar(TestData &t)

 

C#:

Public struct TestData

{

[MarshalAs(UnmanagedType.I4)]

         Int t0;

         //[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]

    String p;

};

MyTestChar(ref td);

下断点跟进去发现,直接给p赋值,数据是可以顺利的传送进去的,但是记得不能加上注释的部分,不会报错,但是传进去的数据,指针的值是一个无效的指针。

昨天本来是想错了,晕了头,结果验证时发现竟然可以传过去数据,真是,还是那句话,实践是检验真理的唯一标准。

  评论这张
 
阅读(429)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017