在VC中创建线程调用vb提供的回调函数,为什么不能正常运行

ilovedrv 2004-04-07 12:38:30
我在vc做了一个动态库,提供Open(),Start(), Stop(), Close()四个接口,在Open()函数中注册一个回调函数,在Start()中利用CreateThread函数创建一个线程,在线程回调函数中调用一个Open()时注册的提供的回调函数,Stop()暂停执行,Close()关闭线程。在vc、bcb、delphi环境下调用该动态库,执行相应过程,没有任何问题,为什么在vb的IDE环境下,程序运行正常,但退出程序是,提示访问非法内存,而利用vb生成的exe程序,只要执行Start()就立刻非法退出?我猜测是否是因为在线程回调函数调用vb提供的函数时,context切换出现问题了。
...全文
35 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
unalone 2004-04-19
  • 打赏
  • 举报
回复
和我遇到的问题一样,分析了一下应该是VB不支持自由线程的缘故:(
Kivic 2004-04-07
  • 打赏
  • 举报
回复
把传递参数和声明前加byval
supergreenbean 2004-04-07
  • 打赏
  • 举报
回复
需要知道你在VB的回调函数中都做了什么,比如说引用了哪些控件。多线程与VB回调同时使用的时候经常会有很多问题产生

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧