C/C++ Óë JAVA µÄ»¥²Ù×÷
ǰÑÔ£ºÇ°¶Îʱ¼äÔÚCSDNµÄC++ÉçÇøÓöµ½Ò»¸öÐèÒª·â×°¿¼ÇÚ»ú½Ó¿ÚµÄ¶¯Ì¬¿â¸øJAVAµ÷ÓõÄÌû×Ó£¬¹´ÆðÁËÎÒ¶ÔJAVAµÄÎÞÏÞ»³Äî¡£ÔÚ´Ë£¬ÎÒÏë°ÑÕâÏî¼¼Êõ¼òµ¥ÔÙ½éÉÜһϡ£
Ò»¡¢¹ØÓÚJava Native Interface (JNI)
JNIÊÇJAVA±¾µØ±à³Ì½Ó¿Ú£¬ÊôÓÚJDKµÄÒ»²¿·Ö¡£ËüÔÊÐíJAVAÄܹ»²Ù×÷±¾µØAPI»òÓÉÆäËûÓïÑÔ±àдµÄ¶¯Ì¬¿â¡£²»¹ýµ±ÄãʹÓÃÕâÏî¼¼ÊõµÄʱºò£¬ÐèÒª¿¼ÂÇJAVAµÄ¿ÉÒÆÖ²ÐÔ¡£
¶þ¡¢±àдһ¸ö¼òµ¥µÄJNI³ÌÐò
1¡¢±àдһ¸öJAVA³ÌÐò
// HelloWorld.java
class HelloWorld
{
//ÉùÃ÷±¾µØ·½·¨,ÒÔnativeΪ¹Ø¼ü×Ö
public native void displayHelloWorld();
static
{
//¼ÓÔØ±¾µØ·½·¨ËùÔڵĶ¯Ì¬¿â
System.loadLibrary("HelloWorld");
}
public static void main(String[] args)
{
new HelloWorld().displayHelloWorld();
}
}
ÖØµã²¿·Ö: a)±¾µØ·½·¨ÒÔnativeΪ¹Ø¼ü×ÖÉùÃ÷ b)¼ÓÔØ¶¯Ì¬¿â
2¡¢±àÒëÔ´³ÌÐò
cmd > javac HelloWorld.java
3¡¢´´½¨.hÎļþÎÒÃÇÐèÒª´ÓHelloWorld.classÎļþÖÐÉú³É¶ÔÓ¦µÄ.hÎļþ£¬ÒÔ±ãÔÚC/C++±àд´úÂë¡£
cmd>javah -jni HelloWorld
Éú³ÉµÄÎļþ(HelloWorld.h)³¤Õâ¸öÑù×Ó:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplusextern "C" {
#endif
/* * Class: HelloWorld * Method: displayHelloWorld * Signature: ()V */
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld (JNIEnv *, jobject);
#ifdef __cplusplus}
#endif
#endif
4¡¢¶ÔÓ¦HelloWorld.hÎļþ´´½¨Ò»¸ö.cÎļþ,ʵÏÖ²¿·ÖÔÚÀïÃæ±àд
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}
5¡¢±àÒë¸Ã.cÎļþ,Éú³Édll
cmd >cl /IC:\j2sdk1.4.2_08\include /IC:\j2sdk1.4.2_08\include\win32 /LD HelloWorld.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
HelloWorld.c
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserve
Ïà¹ØÎĵµ£º
ÏÖÔÚUrlRewriter¼¼ÊõÓÐÁ½¸ö¼¼Êõƽ̨µÄ£¬Ò»¸ö¾ÍÊÇÔÚJava·½ÏòµÄ£¬ÁíÒ»¸ö¾ÍÊÇ.NET·½ÏòµÄ¡£Õâ´ÎÊÇJava·½ÏòµÄÓ¦Óá£
Ê×ÏÈÈÃÎÒÃÇÁ˽âËüµÄ¹¤×÷ÔÀí£¬Ëµ°×ÁËËü¾ÍÊÇÒ»¸ö¼òµ¥µÄ¹ýÂËÆ÷£¨Filter£©£¬¿´¿´Ô´ÂëÄã¾Í»áºÜ¿ìµÄÃ÷°×£¬Ëü¾ÍÊÇͨ¹ýÎÒÃÇÔÚjspÖг£ÓõÄÁ½¸ö·½·¨ÊµÏÖµÄforward(),sendRedirect().
ÏÂÃæÎÒÃǾͿìËÙµÄΪÄãµÄÍøÕ¾´î½¨U ......
ͬÊÂÒªÒ»¸öºÍAccess¹¦ÄÜÀàËÆµÄÈí¼þ£¬µ«ÊÇÒªÂú×ãËýÌá³öµÄ¸÷ÖÖÒªÇó¡£ËýÖªµÀÎÒÊÇ×öÈí¼þµÄ£¬ËùÒÔÈÃÎÒ¸øÐ´Ò»¸ö£¬ÏëÏëËýµÄÌáµÄÐèÇóºÜÈÝÒ×ʵÏÖ£¬ËùÒԾʹðÓ¦ÁË¡£ÒòΪAccessµÄ¹¦ÄÜËý¾ÍÓÃÀ´¹ÜÀí±í¸ñ£¬ÈÕ³£µÄºÜ¶à±í¸ñºÜ¶à£¬¶¼ÐèÒª½øÐеç×ÓµµµÄµÇ¼Ç¡£´ËÈí¼þ¿Ï¶¨ÒªÊµÏÖ±í¸ñ²Ù×÷µÄ¹¦ÄÜ£¬ËäÈ»¸ãJAVAÒѾ¿ìÁ ......
À´×ÔÒ»±¾¾ø°æµÄÊé,ËäȻûÓк¯Êý
ÃèÊö,µ«ÊÇ×îÆðÂë¿ÉÒÔÖªµÀ·ÖÀà,¾Í¿ÉÒÔÈ¥ man ÁË
Linux Cº¯Êý¿â²Î¿¼ÊÖ²á
µÚ1ÕÂ×Ö·û²âÊÔ
º¯Êý
isalnum(²âÊÔ×Ö·ûÊÇ·ñΪӢÎÄ×Öĸ»òÊý×Ö)
isalpha(²âÊÔ×Ö·ûÊÇ·ñΪӢÎÄ×Öĸ)
isascii(²âÊÔ×Ö·ûÊÇ·ñΪASCIIÂë×Ö·û)
isblank(²âÊÔ×Ö·ûÊÇ·ñΪ¿Õ¸ñ×Ö·û)
iscntrl(²âÊÔ×Ö·ûÊÇ·ñΪASCIIÂëµÄ¿ØÖÆ×Ö·û ......
µÚÒ»Ì⣺
ÏÂÃæ³ÌÐòµÄÊä³ö½á¹û£¿
#include <stdio.h>
#include <iostream>
void main()
{
char str1[] = "";
char str2[] = "";
const char str3[] = "abc";
const char str4[] = "abc";
const char* str5 = "abc";
const char* str6 = "a ......
1. ö¾ÙµÄ¶¨Òåö¾ÙÀàÐͶ¨ÒåµÄÒ»°ãÐÎʽΪ£º
enum ö¾ÙÃû{ ö¾ÙÖµ±í };
ÔÚö¾ÙÖµ±íÖÐÓ¦ÂÞÁгöËùÓпÉÓÃÖµ¡£ÕâЩֵҲ³ÆÎªÃ¶¾ÙÔªËØ¡£
ÀýÈ磺
¸Ãö¾ÙÃûΪweekday£¬Ã¶¾ÙÖµ¹²ÓÐ7¸ö£¬¼´Ò»ÖÜÖÐµÄÆßÌì¡£·²±»ËµÃ÷ΪweekdayÀàÐͱäÁ¿µÄȡֵֻÄÜÊÇÆßÌìÖеÄijһÌì¡£
2. ö¾Ù±äÁ ......