首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

调用c++组件有关问题

2012-02-26 
调用c++组件问题c++写的组件里有一个void的函数,参数是in/out类型的。我在c#里定义一个static的stringa,调

调用c++组件问题
c++写的组件里有一个   void的函数,参数是   in/out   类型的。
我在c#里定义一个   static   的   string   a,调用这个函数后,a的值却没有发生改变。
调用该组件里其他有返回值的函数是可以得到返回值的。
请问这是什么原因呢?

[解决办法]
1、检查a在函数体内是否真的有变化
2、把a传递给其他函数,看看是否a有变化

这样就确定问题在传递方,还是接受方的函数有问题了

============================================
技术交流不该有界限 资源共享不该有条件
http://blog.csdn.net/lovingkiss
http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
我保留对非 <散分贴> 蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
============================================
[解决办法]
You may call the procedure as following:

public static extern void(..., out a, ...)
[解决办法]
如果在C中是指针类型,就要使用 byte[] msg,如下:
public static extern void(..., byte[] msg),
然后 a = System.Text.Encoding.Default.GetString(msg);

[解决办法]
不会C++,帮顶
[解决办法]
试试

添加
using System.Runtime.InteropServices;


假设你的dll为NetSpy.dll 你的函数名为GetStr(char* a)

[DllImport( "NetSpy.dll ", CharSet=CharSet.Ansi)]
public static extern void GetStr(ref string a);
[解决办法]
using System.Runtime.InteropServices;

热点排行