java如何调用C++开发的API 帮我呀!!

cnline 2003-10-10 11:00:40
java如何调用C++开发的API比如系统API,短信网关API
...全文
131 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jscsqb 2003-10-15
  • 打赏
  • 举报
回复
http://java.sun.com/docs/books/tutorial/native1.1/TOC.html#concepts
直接看这个文档吧,最原始也是最权威的。
其他的关于jni的文档都是从这里衍生或者抄袭过来的。
teekid 2003-10-15
  • 打赏
  • 举报
回复
我有一份jni的介绍文档,留下email 我可以给你发过去
刚做过这样的一个程序 java-->jni--->c,还有点问题,因为对c不是太熟悉
alienbat 2003-10-14
  • 打赏
  • 举报
回复
native关键字。
demon007 2003-10-14
  • 打赏
  • 举报
回复
好好学习
etre 2003-10-11
  • 打赏
  • 举报
回复
给你一介例子吧JNI的
SendMessageAdapt.c
#include "com_systekit_lotus_sms_SendMessageAdapt.h"
#include <Windows.h>
#include <Winuser.h>
#include <crtdbg.h>
#include "com_systekit_lotus_sms_SendMessageAdapt.h"
#include <Windows.h>
#include <Winuser.h>

JNIEXPORT void JNICALL Java_com_systekit_lotus_sms_SendMessageAdapt_sendMessage
(JNIEnv * env, jclass jc, jstring sendC){
const char * sendMessageCommond;
//sendMessageCommond=(*env)->GetStringUTFChars(env,sendC,0);
//sendMessageCommond=(*env)->GetStringChars(env,sendC,0);
//jstring jstr = (*env)->NewString(env, sendC, strlen(sendC)/2);
sendMessageCommond=(*env)->GetStringUTFChars(env,sendC,0);
WinExec(sendMessageCommond,SW_HIDE);
}

com_systekit_lotus_sms_SendMessageAdapt.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_systekit_lotus_sms_SendMessageAdapt */

#ifndef _Included_com_systekit_lotus_sms_SendMessageAdapt
#define _Included_com_systekit_lotus_sms_SendMessageAdapt
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_systekit_lotus_sms_SendMessageAdapt
* Method: sendMessage
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_com_systekit_lotus_sms_SendMessageAdapt_sendMessage
(JNIEnv * env, jclass jc, jstring sendC);

#ifdef __cplusplus
}
#endif
#endif
build.cmd
vcvars32.bat
cl -LD SendMessageAdapt.c kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib -FeSendMessageAdapt.dll


package com.systekit.lotus.sms;

import com.systekit.lotus.*;

/**
* Title:
* Description:
* Copyright: Copyright (c) 2002
* Company: Systek
* @author Etre Liu
* @version 1.0
*/

public class SendMessageAdapt
{
public static native void sendMessage (String messageContent);
static
{
System.load(MainFrame.getPath()+"SendMessageAdapt.dll");
}

}

baitianhai 2003-10-11
  • 打赏
  • 举报
回复
选择 JNI
etre 2003-10-11
  • 打赏
  • 举报
回复
JNI是不错的选择
RobertDeNiro 2003-10-11
  • 打赏
  • 举报
回复
jni,java native interface
orant 2003-10-11
  • 打赏
  • 举报
回复
CORBA
LuZhou 2003-10-11
  • 打赏
  • 举报
回复
CORBA

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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