[問題]VC++ 2008 視窗使用dll的function꘠…

看板C_and_CPP (C/C++)作者 (bluray21)時間15年前 (2011/06/12 12:56), 編輯推噓3(307)
留言10則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2008 問題(Question): 想在Windows Form上練習使用dll, 簡單來說我使用dll內的function來計算兩數相加.. compile無誤,但值就是不正確,不知道是哪裡的bug~請大大們幫解。 餵入的資料(Input): ex:5 + 8 預期的正確結果(Expected Output): 13 錯誤結果(Wrong Output): 非13..如圖: http://i.imgur.com/kRjGW.png
程式碼(Code):(請善用置底文網頁, 記得排版) Add.dll部份: http://pastebin.com/uBeW1xuR Windows Form的部份: (請直接看到button1_Click那邊的code,其他是程式自動產生) http://pastebin.com/Uus9W3Ua 補充說明(Supplement): Add.cpp 會編譯成Add.dll,之後給視窗程式那邊使用。 附上完整專案檔: http://www.sendspace.com/file/3rz7xa or http://www.megaupload.com/?d=P9B30CL1 ※ 編輯: bluray21 來自: 180.177.86.66 (06/12 13:07)

06/12 16:52, , 1F
typedef int (__cdecl *pfAddIntFunction)(int,int);
06/12 16:52, 1F

06/12 16:52, , 2F
calling convention的問題..
06/12 16:52, 2F

06/12 21:52, , 3F
感謝cole945大~多加了__cdecl果然正常!!
06/12 21:52, 3F

06/12 21:53, , 4F
我翻了手邊的書,DLL部分都沒說到這東西,c大有推薦的書嗎?
06/12 21:53, 4F

06/12 22:10, , 5F
calling convention其實你要做的東西沒有直接關係..
06/12 22:10, 5F

06/12 22:10, , 6F
不過你還是可以讀一下相關東西,你有機會會用到__stdcall
06/12 22:10, 6F

06/12 22:11, , 7F
其他跟你直接相關應該是沒書,建議你用p/invoke,marshaling
06/12 22:11, 7F

06/12 22:11, , 8F
當keyword查msdn上的網頁,都是英文為主.
06/12 22:11, 8F

06/12 22:12, , 9F
另外也可以到C_Sharp版討論..但那邊也有些相關的討論文章
06/12 22:12, 9F

06/12 23:29, , 10F
太厲害了, 沒想過是calling convention的問題....Orz
06/12 23:29, 10F
文章代碼(AID): #1Dz4RYX- (C_and_CPP)
文章代碼(AID): #1Dz4RYX- (C_and_CPP)