关于ace connector的错误

nizainade 2009-02-25 09:36:17
我的问题是这样的,原来的程序是用c++的ace库编写的,现在要改java. 我就想把原来的ace编写的程序抽象出来一个dll,然后用java的jni接口调用他来实现. dll已经写好了,并且在vc环境下测试调用是可以的,然后我在java环境下写了一个测试程序,生成c++的.h文件,然后c++环境下新建一个dll工程去调用已经写好的上面的dll,然后把这个dll放到java环境下,但是总是提示ace的connector连接失败,请教各位大虾在c++环境下调用是正常的,为什么在java下会连接不上呢?
...全文
150 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhyttppd 2009-02-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ediv0824 的回复:]
一般诡异的问题都出现在内存处理上。。
[/Quote]

这个很有可能,如果你在调试下可行,很有可能是对象或变量初始化的问题,此外还有就是网络字节序的问题。
attributemismatch 2009-02-26
  • 打赏
  • 举报
回复
mark
hhyttppd 2009-02-26
  • 打赏
  • 举报
回复
你再写个exe调用dllb,跟进去调试一下。
ediv0824 2009-02-26
  • 打赏
  • 举报
回复
一般诡异的问题都出现在内存处理上。。
nizainade 2009-02-26
  • 打赏
  • 举报
回复
dllB里的方法是带有jni标示的,在c++环境下估计不能调用,在java环境下可以调用,而且今天我发现很奇怪的问题:在java环境下调用dllB,直接运行结果不正确,但是在调试状态下结果却是正确的,这太诡异了吧?!

另:是不是和dllB的生成方式有关?(使用c运行时库的方式?)希望大家指导!
hhyttppd 2009-02-25
  • 打赏
  • 举报
回复
那你的问题可以总结为,用exe调用dllA一切正常
dllB调用dllA不正常。

是否酱紫?
  • 打赏
  • 举报
回复
帮up
nizainade 2009-02-25
  • 打赏
  • 举报
回复
我的意思是这样的,已经有个写好的dllA,这个dll实现的是我想要的功能,我在vc环境下调用这个dll里面的函数去测试某个ip结果是正确的.

现在我的java程序想要调用dllA里的功能,但是不能直接调用,要通过java的jni接口去实现. jni调用dll的流程是在java里定义一个函数A,然后生成.h文件. 然后根据这个.h文件在c++环境下去实现函数A,这样可以生成一个实现函数A的dllB, 把这个dllB放到刚才的java工程的目录下,就可以让java调用dllB里的函数A了

现在问题是在c++环境里调用dllA正确,但是java里调用不对.


函数A就是用ace的connector去连接远程主机的80端口,调用的是connector.connect()函数,有熟悉ace的兄弟指导一下,可能是什么原因,或者说怎么能捕获什么异常信息呢
hhyttppd 2009-02-25
  • 打赏
  • 举报
回复
然后我在java环境下写了一个测试程序,生成c++的.h文件,然后c++环境下新建一个dll工程去调用已经写好的上面的dll,然后把这个dll放到java环境下

绕晕了。。。
nizainade 2009-02-25
  • 打赏
  • 举报
回复
哪位高手指导一下啊
waizqfor 2009-02-25
  • 打赏
  • 举报
回复
nizainade 2009-02-25
  • 打赏
  • 举报
回复
楼上的, dllB工程调用dllA可以可以正常生成dllB,但是java调用dllB有问题,也有可能是dllB调用dllA不正常,但我不太清楚什么原因

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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