锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
http://www.microsoft.com/downloads/thankyou.aspx?familyId=200b2fd9-ae1a-4a14-984d-389c36f85647&displayLang=zh-cn
PS:
涓瀹氬緱鏄疭P1鐗堟湰鎵嶈錛岃榪嘙icrosoft Visual C++ 2005 Redistributable Package (x86)錛屼絾鏄棶棰樹緷鏃с?br />
寰蔣鐨勮ˉ涓佸仛鐨勫緢緇嗗緢寮哄ぇ鍟娿?br />
]]>
]]>
]]>
]]>
JNIEXPORT jint JNICALL Java_DataModule_VersionCtrl_CPP_1SrvVsn_1Depend
(JNIEnv *, jobject, jstring, jint, jstring, jint, jint, jstring);
鍏朵腑:
JNIEXPORT 鍦╣cc鍜寁c6鐨勪腑閮芥槸瀹氫箟涓?__declspec(dllexport)
JNICALL 鍦ㄤ袱縐嶇紪璇戠幆澧冧笅涔熼兘鏄畾涔変負 __stdcall
瑙傚療涓ょ鐜涓嬬敓鎴愮殑dll,鍙戠幇榪欎袱涓猟ll瀵煎嚭鐨勫嚱鏁板悕縐版湁鎵鍖哄埆.
涓涓槸 (gcc)
Java_DataModule_VersionCtrl_CPP_1SrvVsn_1Depend@32
鍙︿竴涓槸(vc6)
_Java_DataModule_VersionCtrl_CPP_1SrvVsn_1Depend@32
鐩稿樊浜嗕竴涓笅鍒掔嚎!!
闅鵑亾鏄洜涓篻cc緙栬瘧鍑虹殑鍑芥暟鍚嶇О涓巎ava棰勬湡鐨勪笉涓鑷?瀵艱嚧鍏跺湪java涓笉鑳借姝e父鐨勮皟鐢?浜庢槸,鎵嬪姩淇敼鐢ㄤ簬gcc緙栬瘧鐨刯ini澶存枃浠朵腑鐨勫嚱鏁板0鏄?鍦ㄥ叾鍘熸湁鍚嶇О鍓嶅姞涓涓笅鍒掔嚎,浣垮叾涓巚c6鐨勮緭鍑虹殑鍚嶇О涓鑷?騫剁浉搴斾慨鏀瑰嚱鏁板畾涔変腑鐨勫嚱鏁板悕縐?閲嶇幇緙栬瘧涔?騫跺啀嬈′簬java涓皟鐢?绔熺劧閫氳繃浜?
google鎼滅儲 __stdcall
鍙戠幇涓嶅悓緙栬瘧鍣ㄥ__stdcall鐨勫疄鐜版槸涓嶅悓鐨?鎵浠ュ鑷寸浉鍚岀殑澹版槑涓?杈撳嚭鍑芥暟鍚嶄笉涓鑷?鑰宩ava鍦╳in32騫沖彴涓嬮粯璁ゆ槸浠ュ井杞殑vc6鐨勭紪璇戣緭鍑烘牸寮忎負鏍囧噯榪涜璋冪敤鐨?鎵浠ョ浉鍚岀殑澶存枃浠秜c6鍙互,鑰実cc涓嶈,(bcb涔熶笉琛?
鎴栬java鏈夐夐」鍙互杈撳嚭鍏煎浜庡叾浠栫紪璇戝櫒鐨凧NI澶存枃浠跺惂.^_^.
doc = xmlParseFile(pXMLFileName);
if (doc == NULL )
{
fprintf(stderr,"XMLParser:Document not parsed successfully. \n");
retval = -1;
goto ERROR_RET;
}
cur = xmlDocGetRootElement(doc); // 浼氬緱鍒癗odeRoot 鑺傜偣.
if (cur == NULL)
{
fprintf(stderr,"XMLParser:Empty document.\n");
retval = -2;
goto ERROR_RET;
}
// ... do something
parsexml(doc,cur); // 瀹氫箟瑙佷笅闈?
ERROR_RET:
if(doc != NULL)
xmlFreeDoc(doc);
return retval;
}
鍏朵腑,:
緇撴瀯xmlNodePtr 瀹氫箟濡備笅(libxml/tree.h):
typedef struct _xmlNode xmlNode;
typedef xmlNode *xmlNodePtr;
struct _xmlNode {
void *_private; /* application data */
xmlElementType type; /* type number, must be second ! */
const xmlChar *name; /* the name of the node, or the entity */
struct _xmlNode *children; /* parent->childs link */
struct _xmlNode *last; /* last child link */
struct _xmlNode *parent; /* child->parent link */
struct _xmlNode *next; /* next sibling link */
struct _xmlNode *prev; /* previous sibling link */
struct _xmlDoc *doc; /* the containing document */
/* End of common part */
xmlNs *ns; /* pointer to the associated namespace */
xmlChar *content; /* the content */
struct _xmlAttr *properties;/* properties list */
xmlNs *nsDef; /* namespace definitions on this node */
void *psvi; /* for type/PSVI informations */
unsigned short line; /* line number */
unsigned short extra; /* extra data for XPath/XSLT */
};
鎴戜滑鍙互浣跨敤鑺傜偣緇撴瀯涓殑鎸囬拡鎴愬憳鏉ラ亶鍘唜ml鏍戜腑鐨勫悇涓妭鐐?
鎴戜竴鑸嬌鐢ㄩ掑綊鐨勬柟寮忛亶鍘唜ml鏍?
int parsexml(xmlDocPtr doc, xmlNodePtr cur)
{
while (cur != NULL)
{
// do something about every node
printf("name: %s\n",cur->name);
{
// for example,we get the "ver" attribute of every node
xmlChar *uri = NULL;
uri = xmlGetProp(cur,(const xmlChar *) "ver");
if(uri != NULL)
{
printf("ver: %s\n", uri);
xmlFree(uri);
}
; // ... others
}
parsexml(doc,cur->xmlChildrenNode);
cur = cur->next;
}
return 0;
}
瀵逛簬鎴戜滑宸茬粡鑾峰彇鐨勭粨鐐?鎴戜滑鍙互浣跨敤浠ヤ笅鍑芥暟鑾峰彇鍏跺悇欏瑰睘鎬у悇欏瑰睘鎬?
XMLPUBFUN xmlChar * XMLCALL xmlGetProp (xmlNodePtr node,const xmlChar *name); (libxml/tree.h)
鑾峰緱璇ヨ妭鐐圭殑鏌愰」灞炴?鍏朵腑,灞炴у悕縐頒嬌鐢?nbsp;絎簩涓弬鏁皀ame鎸囧畾,絎竴涓弬鏁伴渶瑕佷紶鍏ョ粨鐐規(guī)寚閽?
灞炴х殑鍊奸氳繃鍑芥暟榪斿洖浼犲嚭,榪斿洖綾誨瀷鏄?xmlChar,榪欓噷娉ㄦ剰,榪斿洖鐨勫湴鍧鏄寚鍚戝爢鐨?榪欐剰鍛崇潃浣犻渶瑕?BR> 鍦ㄤ嬌鐢ㄥ畬姣曞悗,鎵嬪姩閲婃斁榪欏潡鍐呭瓨.榪欓噷浣跨敤xmlfree鍑芥暟,騫跺皢鎸囬拡浼犲叆鍗沖彲.
鏇村鍑芥暟鍙傝 libxml/tree.h
鏈鍚?浣犻渶瑕佽皟鐢▁mlFreeDoc鍑芥暟榪涜蹇呰鐨勯噴鏀懼伐浣?
瀹屾暣浠g爜:
http://www.tkk7.com/Files/lixf/testlibxml.rar