使用JNative,在Java中传递一个C/C++结构参数到动态库中

用C++写的动态库的导出方法的代码如下:

阅读全文 >>

Java调用动态库最简便方法和最好用的组件

记得以前 Java 要调用C/C++写得动态库都是用的 JNI 方式,还需要自己写不少 C/C++ 代码。比如说要在Java中调用已有的动态库,如 Windows 的 user32.dll 的方法 MessageBoxA,具体步骤是 Java 中声明一个 native 方法,然后用 javah 命令生成JNI样式的头文件,再自己实现头文件中声明的方法,在实现方法中装载动态库 user32.dll,调用 MessageBoxA 方法,需要把自己写的这部分 C/C++ 代码封装成一个动态库,如Sample.dll,最后在 java  中装载 Sample.dll,然后执行其中所声明的本地方法。

可见,用老实的JNI方式,我们在调用一个已知动态库的时候还需要额外生成一个符合JNI规则的动态库作为桥梁,显得有点多余了。 阅读全文 >>

VC6.0编译时出现"Error spawning cl.exe"及解决方法

我安装了VC 6.0后,写一段简单的"Hello World"程序,点击 Build 按钮,信息栏里只出现"Compiling...,Error spawning cl.exe"错误提示。原来那么久可没碰到过这种错误,一下子有点蒙了,没法,很容易就有产生重新安装VC来解决。

重新安装的话太麻烦,还是先到网上找找有没有相应的解决方案,把出错提示放网上google一下,就查到http://www.mscenter.edu.cn/blog/k_eckel/articles/3016.html 的一篇文章提供了方法。 阅读全文 >>

管理和IT的对话

有一个人坐热气球在天空中飘浮,不觉间迷了路,他把热气球下降少许,向地面上的一位路人问路。
「对不起!你能否告诉我,我现在身处何方吗?」
「你现在正坐在热气球上,离地面约3米。」路人说。
「先生,我猜你一定是从事IT行业的。」热气球上的人说。
「对啊!你为甚么会知道的?」
「因为你给我的答复很技术性,但完全没有用。」
「先生,我也猜猜你的职业吧!你一定是做管理的。」路人说。
「对呀!你为甚么会知?」
「Well!因为你不知自己在哪?也不知自己应往哪方走,但你却希望我帮你解决问题,你现在的处境和先前没有两样,但责任已归咎在我身上。」

在VS.NET的VC++中运行控制台程序后暂停

在VC++6.0中运行控制台程序后,执行完后控制台会出现       Press any key to continue . . .  按任意键,控制台才消失。

但是换到在VC++7.0 (VS.NET的VC++)中编写的控制台程序,点击运行后,默认情况下马上把控制台关了,让你看不到输出结果。那么在这个IDE下如何让 Press any key to continue . . . 再次出现呢?

C++中实现"任意键暂停"对于要直接查看输出结果时很重要的,比如你用的是BC编辑器,不能像VC那样自己实现程序运行完后暂停,而是跳回到编辑状态,根本看不到运行结果。

有的人会用#include<conio.h>加上getch();来实现,其实完全不需要的……

用VC或BC编辑C++程序,不用像C语言中加入头文件conio.h ,然后用getch()来实现任意键暂停。

用system("pause");这个语句就可以,不过如果你想改变文字还是要用上面的办法。

其实在C语言中的stdlib.h的头文件中就有这个函数。