如何将.c文件编译成.dll(我用java,一个java调用c的程序)

coolyzg 2003-09-15 02:40:52
我的c持续如下:

#include "Sample1.h"
#include <string.h>

JNIEXPORT jint JNICALL Java_Sample1_intMethod
(JNIEnv *env, jobject obj, jint num) {
return num * num;
}

JNIEXPORT jboolean JNICALL Java_Sample1_booleanMethod
(JNIEnv *env, jobject obj, jboolean boolean) {
return !boolean;
}

JNIEXPORT jstring JNICALL Java_Sample1_stringMethod
(JNIEnv *env, jobject obj, jstring string) {
const char *str = (*env)->GetStringUTFChars(env, string, 0);
char cap[128];
strcpy(cap, str);
(*env)->ReleaseStringUTFChars(env, string, str);
return (*env)->NewStringUTF(env, strupr(cap));
}

JNIEXPORT jint JNICALL Java_Sample1_intArrayMethod
(JNIEnv *env, jobject obj, jintArray array) {
int i, sum = 0;
jsize len = (*env)->GetArrayLength(env, array);
jint *body = (*env)->GetIntArrayElements(env, array, 0);
for (i=0; i<len; i++)
{ sum += body[i];
}
(*env)->ReleaseIntArrayElements(env, array, body, 0);
return sum;
}

void main(){}

看到一个例子命令是
cl -Ic:\jdk\include -Ic:\jdk\include\win32 -LD Sample1.c -FeSample1.dll
但是我用不起来啊,请大家帮忙!谢谢了先^_^
...全文
63 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mofeir 2003-11-28
  • 打赏
  • 举报
回复
cl -Ic:\jdk\include -Ic:\jdk\include\win32 -LD Sample1.c -FeSample1.dll
需要在vc环境下才可以。
coolyzg 2003-10-23
  • 打赏
  • 举报
回复
这分给谁呢
foolfox008 2003-09-16
  • 打赏
  • 举报
回复
在linux底下,gcc -g -o dll.dll -shared dll.c
foolfox008 2003-09-16
  • 打赏
  • 举报
回复
jni调用C,那个网上有例子的啊
bluedodo 2003-09-16
  • 打赏
  • 举报
回复
JAVA我不懂,UP
gzqreder 2003-09-16
  • 打赏
  • 举报
回复
我不会
帮你up
coolyzg 2003-09-16
  • 打赏
  • 举报
回复
自己up一下了

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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