vc2012编译器与动态链接库多线程的问题

[复制链接]
查看11 | 回复3 | 2021-1-27 06:45:37 | 显示全部楼层 |阅读模式
现有一个动态链接库接口,api.dll,提供的是异步调用:比如像服务器发一条消息,返回的消息是通过异步的回调来实现的。
用c++写了一个客户端并用vs2012编译测试是ok的。现在写了一个adapter.dll封装api.dll,供java调用.
java可以调用了成功了,可api不能异步回调了。大家知道怎么原因吗?
我猜想api.dll不能启动多线程导致的。adapter.dll也是用vc2012开发的,并且Mutil-ThreadedDll(/MD)选项也打开了,还不行,不知道什么原因.
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:45:37 | 显示全部楼层
关注啊??


回复

使用道具 举报

千问 | 2021-1-27 06:45:37 | 显示全部楼层
不要猜啊,写log,看程序运行到哪了
回复

使用道具 举报

千问 | 2021-1-27 06:45:37 | 显示全部楼层
不要做A语言代码修改为B语言代码的无用功。
也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。
只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。
即可很方便地让A、B两种语言之间协调工作。
比如:
A将请求数据写到文件a.txt,写完后改名为aa.txt
B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,改名为bb.txt
A发现bb.txt存在时,读取其内容,读完后删除bb.txt
以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。
除非A或B不支持判断文件是否存在、文件读写和文件更名。
但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行