![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 請教一個C的問題
(https://www.pcdvd.com.tw/showthread.php?t=925007)
|
|---|
引用:
小弟也是覺得很奇怪 小弟用autoit(test.exe檔)呼叫別人寫的dll並不會有這種問題 附上檔案 不過它寫出來是強制在C:\底下(檔名也不能改) 用其他程式呼叫也正常 唯獨上面自己寫的dll 不管用autoit呼叫,還是別的程式 都會出現記憶體不能為read... :cry: 頭痛中... :jolin: |
測試了一下,似乎只要帶參數,就會出錯
沒有的話,卻都正常.. 代碼:
dllmain.c DLLIMPORT void HelloWorld () dll.h DLLIMPORT void HelloWorld (void); 正常 代碼:
dllmain.c DLLIMPORT void HelloWorld (int aa) dll.h DLLIMPORT void HelloWorld (int); 錯誤 努力爬文中... :cry: |
引用:
int不能當參數吧.......... |
找到原因了
是因為cdecl與stdcall,我沒注意到這個問題 感謝各位 尤其是iorlvskyo與a_ei,感動到快哭了 :like: |
雖然知道應該不是我想的那種C
但還是不爭氣的點了進來... :nonono: :nonono: |
引用:
您的意思是這行嗎? dll.h DLLIMPORT void HelloWorld (int); 宣告可以只放參數型別,不用加參數名稱沒關係。 |
對不起,我想歪了。我去罰站
|
引用:
不,是你自己找到原因的. 還有 iorlvskyo才是高手. 我是拿你的code 拿來測試而以. 我也不會啊. 反而是這個討論串,讓我學習了一點東西. |
| 所有的時間均為GMT +8。 現在的時間是04:20 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2026。