BBS水木清华站∶精华区

发信人: cmusic (一飞冲天~燕入云), 信区: Java        
标  题: 想在JAVA应用程序中调用C++写的DLL,该如何着手? 
发信站: BBS 水木清华站 (Wed May  5 15:42:22 1999) 
 
看了半天JAVA的高级应用,还是不知其所以然,哪位大侠救救急 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.120.123.252] 
发信人: KHP (人之初), 信区: Java        
标  题: Re: 想在JAVA应用程序中调用C++写的DLL,该如何着手? 
发信站: BBS 水木清华站 (Wed May  5 22:30:50 1999) 
 
【 在 cmusic (一飞冲天~燕入云) 的大作中提到: 】 
 看了半天JAVA的高级应用,还是不知其所以然,哪位大侠救救急 
 
如果你有该 DLL 的源码,你可以按照 Java 中 native 库的编写办法, 
写出程序框架-->生成头文件-->按照头文件改写原来的 C/C++ 程序, 
重新编译生成新结构的 DLL。 
 
如果有源码的话,改写这一步应该还是可行的。 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.163.77] 
发信人: cmusic (一飞冲天~燕入云), 信区: Java 
标  题: Re: 想在JAVA应用程序中调用C++写的DLL,该如何着手? 
发信站: BBS 水木清华站 (Thu May  6 13:28:24 1999) WWW-POST 
 
具体情况是这样的: 
   我们希望编一个以None-MFC为模板的DLL,但其中也用到一些MFC的通用类,如CString 
和CFile等(在VC测试程序中证明可用),这个DLL的主要目的是实现远程串口通信。 
   DLL中拟有一个输出函数来实现通信功能,由JAVA应用程序调用,并返回一个有用的信 
息。该函数用WIN32的串口通信API函数写成(能不能用控件MSComm有待斟酌???),现在 
有些问题不太明白: 
   
  1. 第一步编写具有本地方法的类时是否需要改写想要调用的DLL库中的函数?有些什么 
注意点呢? 
  2. JAVA与C的接口其中有一步叫做“开发C的执行文件”,这一步是怎么回事,如果是 
改写,那DLL又有什么用处呢? 
  3. 有一个叫做MAK的文件必须是手工写的吗? 
  4. 如果说在JAVA中调用DLL太麻烦,能不能直接用JAVA写串口通信函数呢?因为对JAVA 
不熟,不知道它是不是支持WIN32 API函数,或者它有自己的通信函数? 
 
  问题很急,请高手们多发帖子谈谈自己的经验,如蒙赐教,感激涕零! 
 
 
【 在 KHP (人之初) 的大作中提到: 】 
 如果你有该 DLL 的源码,你可以按照 Java 中 native 库的编写办法, 
 写出程序框架-->生成头文件-->按照头文件改写原来的 C/C++ 程序, 
 重新编译生成新结构的 DLL。 
 如果有源码的话,改写这一步应该还是可行的。 
 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.120.123.252]  
发信人: KHP (人之初), 信区: Java        
标  题: Re: 想在JAVA应用程序中调用C++写的DLL,该如何着手? 
发信站: BBS 水木清华站 (Thu May  6 22:32:29 1999) 
 
 
呵呵,你早说用 Java 做串口通信事情就没那么复杂了。 
 
前一段时间我也用 Java 做了一个串口通讯的程序,开始的时候没找到捷径, 
也是这种想法,用 VC 编写本地 DLL 库,后来呢?去 java.sun.com 上一找, 
呵呵,真是得来全不费功夫。 
 
Sun 已经编写了用于串并口通信的 API,当然也是用 DLL 实现的。已经到比较成熟 
的版本了,还有例子。这样用 Java 做串口通信的程序就很容易了,还可以移植到 
Sun 工作站上。 
 
废话少说,你可以从 java.sun.com 或我这儿下载 Sun 的 Comm API(包括文档和 
例程):ftp://166.111.163.77/Develop/Java/JavaComm/javacomm20-win32.zip 
 
【 在 cmusic (一飞冲天~燕入云) 的大作中提到: 】 
 具体情况是这样的: 
    我们希望编一个以None-MFC为模板的DLL,但其中也用到一些MFC的通用类,如CString 
 和CFile等(在VC测试程序中证明可用),这个DLL的主要目的是实现远程串口通信。 
    DLL中拟有一个输出函数来实现通信功能,由JAVA应用程序调用,并返回一个有用的信 
 息。该函数用WIN32的串口通信API函数写成(能不能用控件MSComm有待斟酌???),现在 
 有些问题不太明白: 
    
   1. 第一步编写具有本地方法的类时是否需要改写想要调用的DLL库中的函数?有些什么 
 注意点呢? 
   2. JAVA与C的接口其中有一步叫做“开发C的执行文件”,这一步是怎么回事,如果是 
 改写,那DLL又有什么用处呢? 
   3. 有一个叫做MAK的文件必须是手工写的吗? 
   4. 如果说在JAVA中调用DLL太麻烦,能不能直接用JAVA写串口通信函数呢?因为对JAVA 
 不熟,不知道它是不是支持WIN32 API函数,或者它有自己的通信函数? 
  
   问题很急,请高手们多发帖子谈谈自己的经验,如蒙赐教,感激涕零! 
 
 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.163.77] 

BBS水木清华站∶精华区