日期:2014-05-19  浏览次数:21323 次

请问我在C#调用C写的DLL时怎么总是报错' 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。 在线等~'
请问我在C#调用C写的DLL时怎么总是报错,提示是:  
  '   尝试读取或写入受保护的内存。这通常指示其他内存已损坏。 '  
请哪位大侠说说是什么原因  

我这里有个VB6可以用的代码   但是我不知道在C#中怎么用  
由于VB是解释型的编程语言,它在设计时有一些不同的出发点,因此,在使用VB调用DLL时,有一些事项应引起注意。

如果在C语言中某函数的参数为字符串,并且在函数调用完毕后,有内容通过该
参数返回,当VB使用该函数时,带入的变量必须是已经分配空间的。
例如:
      Dim   BufStr   As   String   *   200

Declare   Function   SW_ReceiveCID   Lib   "SWIND.dll "   (ByVal   nIndex   As   Integer,   ByVal   lpBuf   As   String)   As   Integer


主要就是这句

Dim   BufStr   As   String   *   200   在C#   应该怎么声明啊   我估计是错在了这里

------解决方案--------------------
0x30是0的asc码的16进制表示
简单的转法(仅限于数字)0x30-48