2014-03-12 29 views
0

我有.lib文件,我用C++創建了幾個函數。如何調用我在nasm中用C++創建的.lib函數

_declspec(dllexport) int atoi_new(char * c , int len){ 

    int ar = 0; 
    int f = 0; 

    for(int i = 0 ; i < len ; i++){ 

      f *= 10; 
      ar = (int) c[i]; 
      ar -= 0x30; 
      f += ar ; 
      } 
     return f; 
    }; 

這可能不是一個好例子,但你明白了。 知道我想從nasm中的.lib文件使用此功能任何想法如何做到這一點?

+0

聲明它在你的彙編文件'extern',並連接庫? – Michael

+0

如何導入庫到NASM當我使用這種「進口libs.lib」我得到這個「libs.asm:4:錯誤:解析器:指令預期」 – naqib

回答

1

你應該申報的功能爲C,否則名稱得到錯位,你將不得不尋找它,編譯器做什麼名字了。

#ifdef __cplusplus 
extern "C" { 
#endif 

_declspec(dllexport) int atoi_new(char * c , int len); 

#ifdef __cplusplus 
} 
#endif 

extern "C" _declspec(dllexport) int atoi_new(char * c , int len); 
+0

現在如何在NASM轉儲使用它是... @符號符號偏移類型應用於索引名稱-------- ---------------- ----------------- --- ----- ------ 0000000C DIR32NB 00000000 E _atoi_new 00000058 SECREL 00000000 E _atoi_new 0000005C SECTION 0000 E _atoi_new 00000094 SECREL 00000000 E _atoi_new 00000098 SECTION 0000 E _atoi_new' – naqib

相關問題