[DllImport("mymir.dll", CharSet=CharSet.Ansi ,SetLastError=true )]
static extern Int32 Encryption(string mydata, StringBuilder rTxt );下面的语句在线程中执行
int i=Encryption(mydata,Buffer);有时候可以通过 用时候就错误。 用try catch 也捕捉不到。
现在是不知道问题出在那里。 是DLL 调用不正确 还是 在线程中用DLl不正确
还是 DLl在线程中是不安全的,还是... 郁闷了
拜托各位 有没有知道的或者碰到过类似的,给点提示也行... 莫办法了
static extern Int32 Encryption(string mydata, StringBuilder rTxt );下面的语句在线程中执行
int i=Encryption(mydata,Buffer);有时候可以通过 用时候就错误。 用try catch 也捕捉不到。
现在是不知道问题出在那里。 是DLL 调用不正确 还是 在线程中用DLl不正确
还是 DLl在线程中是不安全的,还是... 郁闷了
拜托各位 有没有知道的或者碰到过类似的,给点提示也行... 莫办法了
我建议还是好好查查你调用DLL的地方
CharSet=CharSet.Ansi 改成 CharSet=CharSet.Unicode 或者 CharSet=CharSet.Auto
不出现错误, 但 dll 返回的值不对了... 还望高手解决下 分不够再+++
static extern Int32 Encryption(StringBuilder mydata, StringBuilder rTxt );
[DllImport("mymir.dll", CharSet=CharSet.Ansi ,SetLastError=true )]
static extern Int32 Encryption(StringBuilder mydata, StringBuilder rTxt );
这个我试了还是不行
函数原型是怎么声明的。
我怎么看原型啊?
没有出现问题 一但是多个线程 很容易出现错误。基本是10个同开 肯定要错。难道说 线程里DLl不安全?? 期待高手 Knight94(愚翁) 那个DLL 不是自己写的 不知道函数如何输出
using System.Threading;private static Mutex mEncrypt = null;
public static int32 myEncryption( StringBuilder mydata, StringBuilder rTxt )
{
if( mEncrypt == null ) mEncrypt = new Mutex();
mEncrypt.WaitOne();//Wait mutex to do encryption //Call dll to encrypt your context
Encryption( mydata, rTxt );
mEncrypt.ReleaseMutex();//Release mutex
}