Java¿çƽ̨µÄÌØÐÔʹJavaÔ½À´Ô½ÊÜ¿ª·¢ÈËÔ±µÄ»¶Ó£¬µ«Ò²ÍùÍù»áÌýµ½²»Éٵı§Ô¹£ºÓÃJava¿ª·¢µÄͼÐÎÓû§´°¿Ú½çÃæÃ¿´ÎÔÚÆô¶¯µÄʱºò¶¼»áÌø³öÒ»¸ö¿ØÖÆÌ¨´°¿Ú£¬Õâ¸ö¿ØÖÆÌ¨´°¿ÚÈñ¾À´·Ç³£°ôµÄ½çÃæÊ§É«²»ÉÙ¡£ÔõôÄܹ»ÈÃͨ¹ýJava¿ª·¢µÄGUI³ÌÐò²»µ¯³öJavaµÄ¿ØÖÆÌ¨´°¿ÚÄØ£¿ÆäʵÏÖÔںܶàÁ÷ÐеĿª·¢»·¾³ÀýÈçJBuilder¡¢Eclipse¶¼ÊÇʹÓô¿Java¿ª·¢µÄ¼¯³É»·¾³¡£ÕâЩ¼¯³É»·¾³Æô¶¯µÄʱºò²¢²»»á´ò¿ªÒ»¸öÃüÁî´°¿Ú£¬ÒòΪËüʹÓÃÁËJNI£¨Java Native Interface£©µÄ¼¼Êõ¡£Í¨¹ýÕâÖÖ¼¼Êõ£¬¿ª·¢ÈËÔ±²»Ò»¶¨ÒªÓÃÃüÁîÐÐÀ´Æô¶¯Java³ÌÐò£¬¿ÉÒÔͨ¹ý±àдһ¸ö±¾µØGUI³ÌÐòÖ±½ÓÆô¶¯Java³ÌÐò£¬ÕâÑù¾Í¿É±ÜÃâÁíÍâ´ò¿ªÒ»¸öÃüÁî´°¿Ú£¬Èÿª·¢µÄJava³ÌÐò¸ü¼Óרҵ¡£
JNIÔÊÐíÔËÐÐÔÚÐéÄâ»úµÄJava³ÌÐòÄܹ»ÓëÆäËüÓïÑÔ£¨ÀýÈçCºÍC++£©±àдµÄ³ÌÐò»òÕßÀà¿â½øÐÐÏ໥¼äµÄµ÷Óá£Í¬Ê±JNIÌṩµÄÒ»ÕûÌ×µÄAPI£¬ÔÊÐí½«JavaÐéÄâ»úÖ±½ÓǶÈëµ½±¾µØµÄÓ¦ÓóÌÐòÖС£
±¾ÎĽ«½éÉÜÈçºÎÔÚC/C++Öе÷ÓÃJava·½·¨£¬²¢½áºÏ¿ÉÄÜÉæ¼°µ½µÄÎÊÌâ½éÉÜÕû¸ö¿ª·¢µÄ²½Öè¼°¿ÉÄÜÓöµ½µÄÄÑÌâºÍ½â¾ö·½·¨¡£±¾ÎÄËù²ÉÓõŤ¾ßÊÇSun¹«Ë¾´´½¨µÄ Java Development Kit (JDK) °æ±¾ 1.3.1£¬ÒÔ¼°Î¢Èí¹«Ë¾µÄVisual C++ 6¿ª·¢»·¾³¡£
»·¾³´î½¨
ΪÁËÈñ¾ÎÄÒÔϲ¿·ÖµÄ´úÂëÄܹ»Õý³£¹¤×÷ ......
Java¿çƽ̨µÄÌØÐÔʹJavaÔ½À´Ô½ÊÜ¿ª·¢ÈËÔ±µÄ»¶Ó£¬µ«Ò²ÍùÍù»áÌýµ½²»Éٵı§Ô¹£ºÓÃJava¿ª·¢µÄͼÐÎÓû§´°¿Ú½çÃæÃ¿´ÎÔÚÆô¶¯µÄʱºò¶¼»áÌø³öÒ»¸ö¿ØÖÆÌ¨´°¿Ú£¬Õâ¸ö¿ØÖÆÌ¨´°¿ÚÈñ¾À´·Ç³£°ôµÄ½çÃæÊ§É«²»ÉÙ¡£ÔõôÄܹ»ÈÃͨ¹ýJava¿ª·¢µÄGUI³ÌÐò²»µ¯³öJavaµÄ¿ØÖÆÌ¨´°¿ÚÄØ£¿ÆäʵÏÖÔںܶàÁ÷ÐеĿª·¢»·¾³ÀýÈçJBuilder¡¢Eclipse¶¼ÊÇʹÓô¿Java¿ª·¢µÄ¼¯³É»·¾³¡£ÕâЩ¼¯³É»·¾³Æô¶¯µÄʱºò²¢²»»á´ò¿ªÒ»¸öÃüÁî´°¿Ú£¬ÒòΪËüʹÓÃÁËJNI£¨Java Native Interface£©µÄ¼¼Êõ¡£Í¨¹ýÕâÖÖ¼¼Êõ£¬¿ª·¢ÈËÔ±²»Ò»¶¨ÒªÓÃÃüÁîÐÐÀ´Æô¶¯Java³ÌÐò£¬¿ÉÒÔͨ¹ý±àдһ¸ö±¾µØGUI³ÌÐòÖ±½ÓÆô¶¯Java³ÌÐò£¬ÕâÑù¾Í¿É±ÜÃâÁíÍâ´ò¿ªÒ»¸öÃüÁî´°¿Ú£¬Èÿª·¢µÄJava³ÌÐò¸ü¼Óרҵ¡£
JNIÔÊÐíÔËÐÐÔÚÐéÄâ»úµÄJava³ÌÐòÄܹ»ÓëÆäËüÓïÑÔ£¨ÀýÈçCºÍC++£©±àдµÄ³ÌÐò»òÕßÀà¿â½øÐÐÏ໥¼äµÄµ÷Óá£Í¬Ê±JNIÌṩµÄÒ»ÕûÌ×µÄAPI£¬ÔÊÐí½«JavaÐéÄâ»úÖ±½ÓǶÈëµ½±¾µØµÄÓ¦ÓóÌÐòÖС£
±¾ÎĽ«½éÉÜÈçºÎÔÚC/C++Öе÷ÓÃJava·½·¨£¬²¢½áºÏ¿ÉÄÜÉæ¼°µ½µÄÎÊÌâ½éÉÜÕû¸ö¿ª·¢µÄ²½Öè¼°¿ÉÄÜÓöµ½µÄÄÑÌâºÍ½â¾ö·½·¨¡£±¾ÎÄËù²ÉÓõŤ¾ßÊÇSun¹«Ë¾´´½¨µÄ Java Development Kit (JDK) °æ±¾ 1.3.1£¬ÒÔ¼°Î¢Èí¹«Ë¾µÄVisual C++ 6¿ª·¢»·¾³¡£
»·¾³´î½¨
ΪÁËÈñ¾ÎÄÒÔϲ¿·ÖµÄ´úÂëÄܹ»Õý³£¹¤×÷ ......
Reading and Writing Excel file with pure C api in windows system. tested on windows 2000, hope it can help you:
#ifndef _WINXLS_H_
#define _WINXLS_H_
/*============================================================================*
* Include Files
*============================================================================*/
#include <windows.h>
#include <Oleauto.h> /* SysAllocString */
#include <objbase.h> /* CoCreateInstance, ... */
#pragma comment(lib, "ole32.lib")
#include "mytypes.h" /* tInt32, ... */
#include "mydll.h" /* define EXPORT */
/*============================================================================*
* define/typedef/struct
*============================================================================*/
#define DISP_CELL &nbs ......
1.strlen()
ʵÏÖ£º
size_t strlen(const char *s)
{
size_t n;
for(n = 0; *s != '\0'; s++)
++n;
return n;
}
2.strcpy()
ʵÏÖ;
char *strcpy(char *s1, register const char *s2)
{
register const char *p = s1;
while(*p++ = *s2++)
;
return s1;
}
·ÖÎö;
Õâ¸öwhileÑ»·ÊǸö¿ÕÑ»·£¬ËùÓе͝×÷¶¼ÊÇ×÷ΪwhileÑ»·µÄ¿ØÖƱí´ïʽµÄ¸±×÷ÓÃÍê³ÉµÄ¡£
while(*p++ = *s2++)£¬pËùÖ¸ÏòµÄ×Ö·û±»¸³ÖµÎªs2ËùÖ¸ÏòµÄ×Ö·û£¬È»ºópºÍs2¶¼½øÐÐÔöÖµ£¬Ö¸ÏòÏÂÒ»¸ö×Ö·û£¬ÖªµÀs2Ö¸ÏòµÄ×Ö·ûÊÇ'\0'£¨ÆäֵΪ0£©¡£µ±Õâ¸ö0¸³¸øpËùÖ¸ÏòµÄ×Ö·ûʱ£¬Ï൱ÓÚÉèÖÃÁË×Ö·û´®½áÊø±êÖ¾£¬²¢ÇÒÕû¸ö±í´ïʽµÄֵΪ0£¬Í˳öÑ»·¡ ......
¿¼²éÒ»¸ö³õ¼¶Ç¶Èëʽϵͳ¿ª·¢ÈËÔ±µÄC»ù±¾¹¦£¬¸½Óдð°¸ÌâÄ¿ÓÉ×ÊÉîǶÈëʽϵͳר¼ÒÄⶨ,Ä¿µÄÊÇ¿¼²éÈëÃż¶µÄǶÈëʽÈí¼þ¿ª·¢ÈËÔ± Gavin ShawÌṩÏêϸ½â´ð
±àÕß°´:·Ç³£»ù±¾¹ØÓÚCÓïÑÔµÄÎÊÌâ,Ò»¸öÐÅÏ¢Àà(¼ÆËã»ú,×ÊѶ¹¤³Ì,µç×Ó¹¤³Ì, ͨÐŹ¤³Ì)רҵµÄ±¾¿Æ±ÏÒµÉúÓ¦¸Ã´ïµ½µÄˮƽ¡£ÌâÄ¿²»ÄÑ,È«²¿¶¼ÄÜ¿ìËٵشðÍ꣬µ±È»Ò²ÐèÒªÒ»¶¨µÄ֪ʶ´¢±¸¡£
¶ÔÓÚ´ó¶àÊýÈË£¬ÎÒÃÇÔ¤ÆÚÄã¿ÉÄÜ´ð´í 3) 4) 15)Ì⣬ËùÒÔ´ð´í3µÀÒÔÄڵģ¬ÎÒÃÇÈÏΪÄãºÜ°ô
´ð´í5µÀÌâÒÔÄÚ£¬ÎÒÃÇÈÏΪÄ㻹²»´í(Ä㻹¿ÉÄÜ´ð´íµÚ9Ìâ)
Èç¹ûÄãÓÐ6µÀÒÔÉϵÄÌâÄ¿²»ÄÜ´ð¶Ô,»ù±¾ÉÏÎÒÃǶ¼²»ºÃ˵ʲôÁË....
Ô¼¶¨:
1) ÏÂÃæµÄ²âÊÔÌâÖУ¬ÈÏΪËùÓбØÐëµÄÍ·Îļþ¶¼ÒѾÕýÈ·µÄ°üº¬ÁË
2)Êý¾ÝÀàÐÍ
char Ò»¸ö×Ö½Ú 1 byte
int Á½¸ö×Ö½Ú 2 byte (16λϵͳ£¬ÈÏΪÕûÐÍÊÇ2¸ö×Ö½Ú)
long int Ëĸö×Ö½Ú 4 byte
float Ëĸö×Ö½Ú4 byet
&nbs ......
constÓë#define×î´óµÄ²î±ð£¬ConstÔÚ¶ÑÕ»·ÖÅäÁ˿ռ䣬¶ø#defineÖ»ÊǰѾßÌåÊýÖµÖ±½Ó´«µÝµ½Ä¿±ê±äÁ¿°ÕÁË¡£»òÕß˵£¬constµÄ³£Á¿ÊÇÒ»¸öRun-TimeµÄ¸ÅÄËûÔÚ³ÌÐòÖÐȷȷʵʵµÄ´æÔÚ¿ÉÒÔ±»µ÷Óᢴ«µÝ¡£¶ø#define³£Á¿ÔòÊÇÒ»¸öCompile-Time¸ÅÄËüµÄÉúÃüÖÜÆÚÖ¹ÓÚ±àÒëÆÚ£ºÔÚʵ¼Ê³ÌÐòÖÐËûÖ»ÊÇÒ»¸ö³£Êý¡¢Ò»¸öÃüÁîÖеIJÎÊý£¬Ã»ÓÐʵ¼ÊµÄ´æÔÚ¡£
¡¡¡¡@ const³£Á¿´æÔÚÓÚ³ÌÐòµÄÊý¾Ý¶Î¡£
¡¡¡¡@ #define³£Á¿´æÔÚÓÚ³ÌÐòµÄ´úÂë¶Î¡£
ÎÒÃÇÒª°ÑÕâ¸öÎÊÌâ·Ö²»Í¬µÄ±àÒëÆ÷À´¿´¡£ËùÒÔÒ»°ãÎÒÃÇÈÏΪ£¬Const³£Á¿ÊÇ·ÖÅäÁËÄÚ´æ¿Õ¼äµÄ£¬¶øÇÒÖ»·ÖÅäÒ»´Î£¬ÔÚʹÓÃConst³£Á¿Ê±ÓëʹÓñäÁ¿µÄÒýÓ÷½Ê½Ò»Ñù£¬ÈçÍõsanËù½²¡ºÊ¹ÓÃconst³£Á¿»¹¿ÉÒÔ±ÜÃâÄ¿±êÂëµÄ¶à·Ý¸´ÖÆ¡£ÔÚ³ÌÐòÖУ¬½öÓÐÒ»¸öÄÚ´æÀ´´æ·Å³£Á¿¡»
µ«ÊǸù¾Ý±àÒëÆ÷µÄ²»Í¬£¬»¹ÂÔÓв»Í¬¡£
¡ôC±àÒëÆ÷
ÔÚC±àÒëÏ£¬Const³£Á¿ÊÇÍêÈ«·ÖÅäÁËÄÚ´æ¿Õ¼äµÄ£¬ÔÚʹÓÃʱ£¬ÊÇÏñ±äÁ¿Ò»ÑùÀ´Ê¹Óõġ£²Î¼ûÒÔÏÂʵÑé´úÂë¡£
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
3: const int a = 100;
4: main()
5: {
7: int x = a;
00401028 mov eax,[_a (0041f01c)]
0040102D mov dword ptr [ebp-4],eax
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@ ......
constÓë#define×î´óµÄ²î±ð£¬ConstÔÚ¶ÑÕ»·ÖÅäÁ˿ռ䣬¶ø#defineÖ»ÊǰѾßÌåÊýÖµÖ±½Ó´«µÝµ½Ä¿±ê±äÁ¿°ÕÁË¡£»òÕß˵£¬constµÄ³£Á¿ÊÇÒ»¸öRun-TimeµÄ¸ÅÄËûÔÚ³ÌÐòÖÐȷȷʵʵµÄ´æÔÚ¿ÉÒÔ±»µ÷Óᢴ«µÝ¡£¶ø#define³£Á¿ÔòÊÇÒ»¸öCompile-Time¸ÅÄËüµÄÉúÃüÖÜÆÚÖ¹ÓÚ±àÒëÆÚ£ºÔÚʵ¼Ê³ÌÐòÖÐËûÖ»ÊÇÒ»¸ö³£Êý¡¢Ò»¸öÃüÁîÖеIJÎÊý£¬Ã»ÓÐʵ¼ÊµÄ´æÔÚ¡£
¡¡¡¡@ const³£Á¿´æÔÚÓÚ³ÌÐòµÄÊý¾Ý¶Î¡£
¡¡¡¡@ #define³£Á¿´æÔÚÓÚ³ÌÐòµÄ´úÂë¶Î¡£
ÎÒÃÇÒª°ÑÕâ¸öÎÊÌâ·Ö²»Í¬µÄ±àÒëÆ÷À´¿´¡£ËùÒÔÒ»°ãÎÒÃÇÈÏΪ£¬Const³£Á¿ÊÇ·ÖÅäÁËÄÚ´æ¿Õ¼äµÄ£¬¶øÇÒÖ»·ÖÅäÒ»´Î£¬ÔÚʹÓÃConst³£Á¿Ê±ÓëʹÓñäÁ¿µÄÒýÓ÷½Ê½Ò»Ñù£¬ÈçÍõsanËù½²¡ºÊ¹ÓÃconst³£Á¿»¹¿ÉÒÔ±ÜÃâÄ¿±êÂëµÄ¶à·Ý¸´ÖÆ¡£ÔÚ³ÌÐòÖУ¬½öÓÐÒ»¸öÄÚ´æÀ´´æ·Å³£Á¿¡»
µ«ÊǸù¾Ý±àÒëÆ÷µÄ²»Í¬£¬»¹ÂÔÓв»Í¬¡£
¡ôC±àÒëÆ÷
ÔÚC±àÒëÏ£¬Const³£Á¿ÊÇÍêÈ«·ÖÅäÁËÄÚ´æ¿Õ¼äµÄ£¬ÔÚʹÓÃʱ£¬ÊÇÏñ±äÁ¿Ò»ÑùÀ´Ê¹Óõġ£²Î¼ûÒÔÏÂʵÑé´úÂë¡£
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
3: const int a = 100;
4: main()
5: {
7: int x = a;
00401028 mov eax,[_a (0041f01c)]
0040102D mov dword ptr [ebp-4],eax
@@@@@@@@@@@@@@ʵÑé´úÂë@@@@@@@@@@ ......
2009-09-13 16:42:43
½ñÌìʵÏÖ¶ÑÕ»½á¹¹²¿·ÖµÄ´úÂ룬²¢ÓÃÒ»¼òµ¥³ÌÐò²âÊԳɹ¦¡£
stack.h:
#ifndef _STACK_H_
#define _STACK_H_
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#define STACK_INIT_SIZE 5
#define STACKINCREMENT 5
typedef int SElemType; //the elements type
typedef enum {
TRUE=0,
FALSE=-1
} Status;
typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
Status InitStack(SqStack *S);
Status DestoryStack(SqStack *S);
Status ClearStack(SqStack *S);
Status StackEmpty(SqStack S);
int LengthStack(SqStack S);
Status GetTop(SqStack S,SElemType *e);
Status Push(SqStack *S,SElemType e);
Status Pop(SqStack *S,SElemType *e);
Status StackTraverse(SqStack S);
#endif
stack.c
#include "Stack.h"
Status InitStack (SqStack *S)
{
if((S->base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType)))==(SElemType*)NULL){
printf("init stack malloc error !\n");
retur ......