我試圖讓這個簡單的程序在Windows上工作,但它崩潰了:試圖在Windows上使用TCL線程7導致訪問衝突
unsigned (__stdcall testfoo)(ClientData x) { return 0; } int main() { Tcl_ThreadId testid = 0; Tcl_CreateThread(&testid, testfoo, (ClientData) NULL, TCL_THREAD_STACK_DEFAULT, TCL_THREAD_NOFLAGS); }
我使用cmake並鏈接生成一個makefile針對我使用Visual C++ 2008 express編譯自己的Tcl 8.5.7版本。它使用msvcrt,靜態線程編譯,生成的庫的名稱爲tcl85tsx.lib。錯誤是:
Unhandled exception at 0x77448c39 in main.exe: 0xC0000005: Access violation writing location 0x00000014.
Tcl庫工作得很好,我甚至可以通過加載線程擴展到它運行一個線程腳本示例。我的假設是,內存違規有可怕的錯誤,但我不知道是什麼。任何幫助讚賞。
我建議:嘗試從Windbg啓動應用程序並查看堆棧跟蹤; – whunmr 2010-01-01 14:15:32
您是否在另一個平臺上(或甚至是在不同版本的Windows上)測試了相同的代碼? – bta 2010-03-19 20:20:11