动态库名为SS.DLL 其有一函数为 void* OpenDevice(int nMyAddress, HWND hWnd)其中HWND 在VC中用m_hWnd为实参,编译可以,但执行EXE老出现意外错误,在BCB 中,用handle 就可以。不怎么为什么。 到底这个hWnd 的实参要用那个。都是句柄,差别这么这么大啊。

解决方案 »

  1.   

    編譯一個除錯版, 使用除錯器運行 EXE. 出現意外錯誤時便可以看看哪裏出錯.
      

  2.   

    试试用GetSafeHwnd()来传递,m_hWnd有时候是用的临时handle
      

  3.   

    是不是你自己搞糊涂了啊.
    一般窗口句柄用HWND
    而设备,文件等句柄用HANDLE至于函数void* OpenDevice(int nMyAddress, HWND hWnd)是传什么参数,
    你要看接口参数说明,否则乱传参数肯定会有问题的.
      

  4.   

    1. 編譯除錯版. cl.exe 的命令列是 /Zi2. 下載 http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx3. 執行安裝好的 WinDbg, 打開你要調試的檔案.[在 WinDbg 裏]3.1 在命令行列輸入 .lines 命令.4. 在命令行列輸入 g 命令.5. 遇到錯誤時便會停下, 若不是你關心的, g 繼續執行.6. 若是你關心的, 下達 kp 命令, 看看是甚麼參數.