问c#调用dll的问题(请Knight94(愚翁)、kssys和各位高手看看 )
我需要用c#调用一个dll文件,这个dll文件是用VC写的,具体的功能就是传入一个字符串后,输出一个字符串,而且传入的和返回的定义类型都是char*,c#里我调用dll的代码是这样写的: 
 public   class   TransferDll 
 { 
 [DllImpor( "GetString.DLL ",EntryPoint= "GetCString ",CallingConvention=CallingConvention.Winapi)] 
 public   static   extern   StringBuilder      GetCString(StringBuilder   InuptString); 
 } 
    调用dll里面的函数是这样写的: 
 ......... 
 ......... 
 string   strTest   =   null; 
 StringBuilder   test   =   new   StringBuilder();  		             
 StringBuilder   testwo   =   new   StringBuilder();  			 
 testwo.Append( "磁盘驱动器 "); 
 testwo.Append( '/ '); 
 test=   TransferDll.GetCString(testwo); 
 strTest   =   test.ToString(); 
 ........ 
 ........ 
 但是我编译的时候,老是报
未将对象引用设置到对象的实例的错误。 
 我昨天看了半天,也没看出来是怎么回事, 
 各位高手看看,到底是怎么回事,
------解决方案--------------------如果只是传进的话,你可以如下试试 
 public class TransferDll 
 { 
 [DllImpor( "GetString.DLL ",EntryPoint= "GetCString ")] 
 public static extern string GetCString( string InuptString); 
 }
------解决方案--------------------试试这2个 
 DllImpor( "GetString.DLL ",EntryPoint= "GetCString ")] 
 public static extern string GetCString( ref string InuptString); 
  或 
 DllImpor( "GetString.DLL ",EntryPoint= "GetCString ")] 
 public static extern string GetCString(ref StringBuilder InuptString); 
 用IntPtr 是错误的
------解决方案--------------------UP`