尝试在C语言里使用COBOL程序。
一小段COBOL代码(注意正文要从每行第八个字符开始)
编译
- IDENTIFICATION DIVISION.
- PROGRAM-ID. TestProc.
- ENVIRONMENT DIVISION.
- DATA DIVISION.
- PROCEDURE DIVISION.
- *下面就俗套了
- DISPLAY "Hello world!".
cobc test.cob
生成 test.so。
一小段C代码
- #include <stdio.h>
- #include <dlfcn.h>
- int main() {
- void (*proc)();
- void *dlptr;
- dlptr = dlopen("./test.so", RTLD_LAZY);
- if (dlptr == NULL) {
- printf("Dynamic library not found.");
- return 0xFF;
- }
- proc = dlsym(dlptr, "cob_init");
- if (proc == NULL) {
- printf("Function %s entry not found.", "cob_init");
- }
- proc();
- proc = dlsym(dlptr, "TestProc");
- if (proc == NULL) {
- printf("Function %s entry not found.", "TestProc");
- }
- proc();
- return 0;
- }
编译
gcc testlink.c -ldl
生成a.out,将其运行後打印出COBOL程序里的“Hello world!”。
这是一个非常简单的例子,对于操作LINKAGE SECTION的过程我以後会逐步尝试,而且我会尝试在Java JNI里调用这个COBOL程序。
发表于 @ 2008年08月30日 17:03:00 | 评论( loading... ) | 举报| 收藏