调用NetDiskDLL.dll中的一个函数DES(string instr,string key,ref string outstr,int mode)
其中outstr是引用型参数,在PB中尝试调用成功,但在C#中调用失败,提示"尝试读取或写入受保护的内存,这通常指示其他内存已损坏",如何解决这个问题?请高手指点.
其中outstr是引用型参数,在PB中尝试调用成功,但在C#中调用失败,提示"尝试读取或写入受保护的内存,这通常指示其他内存已损坏",如何解决这个问题?请高手指点.
解决方案 »
- 关于ListView和TreeView中 选中项目
- .NET 可編輯下拉框,求幫忙完善功能
- C#中如何获取鼠标双击的间隔
- oracle与.net时候报错
- c#如何关闭一个运行的程序?
- 我用destination.ascx写了一个连动模板,有一个页面要用两次,就出现了问题
- 【C#指针,内存,结构体】结构体byte数组的问题!!
- c#中的数据导出
- winform中checkedlistbox当鼠标点击某项时怎么不让显示那个蓝色的当前项标志
- 自己人的C#网站,www.csharphq.com 大家来捧场!
- B/S中从数据库中读取IMAGE类型并已返回byte数组 如何显示在指定控件上?
- c#啟動exe文件發生的問題
用于传出的字符串不要这样,用预先分配足够内存的StringBuilder
StringBuilder outstr = new StringBuilder(256);
string instr = "192168000001001E8C914868";
string key = "12345678";
ws_obj_library.ws_trs_library aa = new ws_obj_library.ws_trs_library();
aa.MYDES(instr, key ,outstr,1);
出错提示为:
与“SystemTemplate.ws_obj_library.ws_trs_library.MYDES(string, string, SystemTemplate.ws_obj_library.StringBuilder, int)”最匹配的重载方法具有一些无效参数
参数“3”: 无法从“System.Text.StringBuilder”转换为“SystemTemplate.ws_obj_library.StringBuilder”根据错误提示,把stringbuilder变量的构造语句改成:
ws_obj_library.StringBuilder outstr = new SystemTemplate.ws_obj_library.StringBuilder();
但运行后提示"缓冲溢出",我知道是没有分配内存空间的缘故,于是修改成:
ws_obj_library.StringBuilder outstr = new SystemTemplate.ws_obj_library.StringBuilder(256);
出错提示:“StringBuilder”方法没有采用“1”个参数的重载"
到底应该怎么做?