2012-07-21 41 views
1

我想在我的項目中使用兩個第三方庫,但其中一個使用__stdcall約定編譯,另一個使用__cdecl編譯。無論我將我的項目屬性設置爲什麼,LINKER都無法鏈接一個或另一個庫。有沒有辦法做到這一點?如何在一個vs2008項目中將庫與__stdcall和__cdecl結合使用

+1

夥計,8個問題,0%接受? – Puppy 2012-07-21 09:24:03

+2

編輯第一個.h文件並在函數聲明中插入__stdcall。 – 2012-07-21 09:35:27

+0

@HansPassant謝謝你,它工作。 – Anorflame 2012-07-25 19:52:54

回答

1

調用約定外部代碼編譯與應該無關。只要適當的函數是用正確的約定聲明的,那麼你爲自己的代碼使用的慣例就不重要了,並且無論你做出什麼樣的選擇,它都會起作用。

+0

我同意,但我看到如果我只是試圖編譯它而不更改其中一個頭文件中的聲明,則鏈接程序將失敗(在我的其他問題中有更詳細的描述)。 如果約定沒有在頭文件中明確指定,導入函數使用什麼約定?我的假設(糾正我,如果我錯了)是在項目的屬性或特定文件中指定的。在這種情況下(我在整個項目中使用一個約定,而第三方庫與另一個編譯時),我認爲鏈接器失敗是有道理的。 – Anorflame 2012-07-25 19:55:35

相關問題