<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    知新軒
    溫故而知新,可以為師矣.
    posts - 7,  comments - 2,  trackbacks - 0

    使用gcc(win32)根據(jù)java導(dǎo)出的jini頭文件,編譯出的動(dòng)態(tài)庫(kù),無(wú)法被java正常的調(diào)用.而相同的頭文件,使用vc6編譯出的dll則可以.函數(shù)聲明如下:
    JNIEXPORT jint JNICALL Java_DataModule_VersionCtrl_CPP_1SrvVsn_1Depend
      (JNIEnv *, jobject, jstring, jint, jstring, jint, jint, jstring);
    其中:
    JNIEXPORT  在gcc和vc6的中都是定義為 __declspec(dllexport)
    JNICALL  在兩種編譯環(huán)境下也都是定義為 __stdcall
    觀察兩種環(huán)境下生成的dll,發(fā)現(xiàn)這兩個(gè)dll導(dǎo)出的函數(shù)名稱(chēng)有所區(qū)別.
    一個(gè)是 (gcc)
    Java_DataModule_VersionCtrl_CPP_1SrvVsn_1Depend@32
    另一個(gè)是(vc6)
     _Java_DataModule_VersionCtrl_CPP_1SrvVsn_1Depend@32
    相差了一個(gè)下劃線(xiàn)!!
    難道是因?yàn)間cc編譯出的函數(shù)名稱(chēng)與java預(yù)期的不一致,導(dǎo)致其在java中不能被正常的調(diào)用?于是,手動(dòng)修改用于gcc編譯的jini頭文件中的函數(shù)聲明,在其原有名稱(chēng)前加一個(gè)下劃線(xiàn),使其與vc6的輸出的名稱(chēng)一致,并相應(yīng)修改函數(shù)定義中的函數(shù)名稱(chēng).重現(xiàn)編譯之,并再次于java中調(diào)用,竟然通過(guò)了.

    google搜索 __stdcall

    發(fā)現(xiàn)不同編譯器對(duì)__stdcall的實(shí)現(xiàn)是不同的,所以導(dǎo)致相同的聲明下,輸出函數(shù)名不一致.而java在win32平臺(tái)下默認(rèn)是以微軟的vc6的編譯輸出格式為標(biāo)準(zhǔn)進(jìn)行調(diào)用的.所以相同的頭文件vc6可以,而gcc不行,(bcb也不行)
    或許java有選項(xiàng)可以輸出兼容于其他編譯器的JNI頭文件吧.^_^.

    posted on 2005-12-23 10:47 ___ 閱讀(3172) 評(píng)論(2)  編輯  收藏

    FeedBack:
    # re: win32下使用gcc編譯供java 調(diào)用的dll須知(jini)
    2006-01-09 17:06 | 小鐵匠
    # re: win32下使用gcc編譯供java 調(diào)用的dll須知(jni)
    2007-05-31 21:12 | zb
    暈倒,那里的事呀....一點(diǎn)也不用改的..  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    <2006年1月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(1)

    隨筆檔案(6)

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲精品免费观看| 亚洲91精品麻豆国产系列在线| 日本亚洲成高清一区二区三区| 亚洲精品91在线| 免费一级特黄特色大片| 91成人免费观看| 日韩亚洲精品福利| 亚洲白嫩在线观看| 国产日韩在线视频免费播放| 久久久久国色AV免费看图片| 亚洲精品无码久久久久| 中文字幕精品三区无码亚洲| 精品一区二区三区免费| yy6080亚洲一级理论| 亚洲国产日产无码精品| 99re6在线视频精品免费| 韩国日本好看电影免费看| 亚洲视频.com| 国产在线国偷精品免费看| 免费羞羞视频网站| 在线免费观看亚洲| 国产精品九九久久免费视频 | 亚洲av无码专区国产乱码在线观看 | 深夜国产福利99亚洲视频| 亚洲春色另类小说| 中文字幕视频在线免费观看| 国产精品另类激情久久久免费 | 免费无遮挡无码视频在线观看| AA免费观看的1000部电影| 久久亚洲精品成人综合| 一区二区视频在线免费观看| 国产免费av一区二区三区| 亚洲五月综合缴情婷婷| 亚洲免费视频网站| 亚洲成AV人片一区二区密柚| 国产99久久久国产精免费| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲日韩av无码中文| 99精品国产免费久久久久久下载 | 日韩电影免费在线| 亚洲熟女精品中文字幕|