惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
MyScale Blog
MyScale Blog
Recent Announcements
Recent Announcements
N
Netflix TechBlog - Medium
GbyAI
GbyAI
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
Martin Fowler
Martin Fowler
腾讯CDC
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
WordPress大学
WordPress大学
P
Proofpoint News Feed
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog

博客园 - say3say4的私人空间

期待 突破 解决 jboss和log4j的冲突问题 未来50家最具商业潜力网站名单(互联网周刊) java 和 c++ 之间通过 控制台 输入输出 传递数据 转贴_vc++ 编译 occi 接口的 环境设置 - say3say4的私人空间 结合开源项目(postgis mapserver ) 研究 oracle spatial oracle9i spatial 开发 occi (基于oci的c++接口) ajax应用体现_无需安装 msn等桌面软件 研习了一下google map api AJAX和webgis在实际项目中的运用(电业局用电检查系统) ant中最基本的设置 虚拟机VMWARE和移动硬盘的合作_移动办公 在C++中使用事件回调机制(通过Observer模式、函数指针等实现) 对DWR的学习告一段落,开发了结合具体应用的DEMO 不错的网站 回忆AOP 被google搜索到了 地震、停水、禽流感 关于讨论ajax,B/S框架,B/S界面的一个有用的站点
SWIG 万能语言粘合剂
say3say4的私人空间 · 2005-12-28 · via 博客园 - say3say4的私人空间

    cong www.swig.org  可以下载最新的swig

    具体配置参照下载中的example\java部分,在vc++环境中生成dll时候,需要预先设置好一些变量

如下:
JAVA_INCLUDE
JAVA_BIN
SWIG
其中swig为下载包的解开目录。

特别注意在编译生成dll时候, 工程中必须已经包装文件了(example_wrap.cxx),否则生成的dll,在运行时候出现异常!!!

包装文件 既可以在初始时候引入空文件,也可以先编译一次,生成_wrap.cxx文件,然后将其加入到工程中,再重新编译链接即可。

  可以参考本blog中的小例子(java调用普通c函数, 在c函数中再创建内部类)

  以及其中的利用 c 编写的用户口令加密解密的函数(在java中调用)

注意事项: tomcat jsp servlet 中 调用 JNI,SWIG 的问题

  java 能够调用dll 中的 c/c++函数, 内部机制主要通过控制dll导出函数的名字,因此上面特意强调需要载工程中引入 _wrap.cxx 的重要性。

    当需要 java 的 包 package 时候, 要特别注意,dll导出函数名的问题,否则将会找不到dll对应的native code 函数, 关键就是要在 vc环境中设置 -package 选项。

例如:
%SWIG%\swig.exe -c++ -java -package com.test.swig  $(InputPath)

    当jni类需要改变 包 名称 地址 后, 一定需要重新在编译链接 该dll 文件!!!