多线程调用dll 什么叫“dll当函数用”?没这种概念啊?!多线程对函数是有要求的,不是随便一个函数都可以用于多线程的。例如如果你一个函数访问了一个全局变量而没有做并发保护,这样的函数就不能用于多线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多线程调DLL时每个线程都会调用DllMain,其它与EXE基本没差别。 调用dll出现的错误信息,帮我看看EXCEPTION(2nd Chance) Exception: Unknown exception (0xE06D7363)code: E06D7363 addr:77E69B01KERNEL32.dll-00009B01 (77E60000)EAX:03780FD0 EBX:027643C0 ECX:00000000EDX:E06D7363 ESI:03781060 EDI:03780FF0ESP:03780FC8 EBP:03781020 EIP:77E69B01EFLAGS:00000206CS:001B DS:0023 ES:0023SS:0023 FS:0038 GS:0000Stack dump03781060:100360A8:E06D7363:00000001Call stackKERNEL32.dll!00009B01BCCORE.DLL!00067FA0exdll.dll!00001C19!0000B996!0000325A!00003DC3KERNEL32.dll!00012CA8Exception: Unknown exception (0xE06D7363) 用ollydbg调试,出错时会停在出错代码处 寄存器(MMX)里lastErr ERROR_SUCCESS (00000000) 看这个没有意义的,从现象看,你的dll显然不是多线程安全的,就是不能用。从汇编或者call stack要是能看出才叫神仙 调试一下这个DLL,先定位代码行,再想办法解决....个人觉得还是线程锁的问题! dll的内存数据是共享的,DLL不支持多线程,使用多线程调用,基本挂掉的。 单独调用时没有问题而多线程调用出错的话,个人觉得是因为你DLL里的函数不是线程安全的。也就是说函数内部变量以及DLL中全局变量的值受到多个线程的修改,以致跟你预想的值不一样,所以会出错,而单独调用的时候只有一个线程修改那些值因此不会有问题。 完成端口中的IO投递 ::std::vector<CStrs> 取得二维数据的行.size,怎么取得列大小? RGB颜色问题! db-library 如何获得返回的记录个数 CString msg= "abc我d的dd"我要返回字符我,无法用GetAt把? MFC消息相应自动添加出错的处理问题 请问如何在对话框和菜单中加入网站链接? 求开发word浏览器的资料 服务端程序关机时写入启动项 ====== 要 分 没 有!! 要 命 一 条!! ======= 关于把自己从任务栏中干掉!! VS2005的MFC Class Wizard 多线程调用DLL
EXCEPTION(2nd Chance) Exception: Unknown exception (0xE06D7363)
code: E06D7363 addr:77E69B01
KERNEL32.dll-00009B01 (77E60000)
EAX:03780FD0 EBX:027643C0 ECX:00000000
EDX:E06D7363 ESI:03781060 EDI:03780FF0
ESP:03780FC8 EBP:03781020 EIP:77E69B01
EFLAGS:00000206
CS:001B DS:0023 ES:0023
SS:0023 FS:0038 GS:0000
Stack dump
03781060:100360A8:E06D7363:00000001
Call stack
KERNEL32.dll!00009B01
BCCORE.DLL!00067FA0
exdll.dll!00001C19
!0000B996
!0000325A
!00003DC3
KERNEL32.dll!00012CA8
Exception: Unknown exception (0xE06D7363)
lastErr ERROR_SUCCESS (00000000)
个人觉得还是线程锁的问题!