调用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;