精華區beta Programming 關於我們 聯絡資訊
小沛 <pay.bbs@bbs.cs.nthu.edu.tw> wrote: > 想請教程式高手,小弟用borland C++ 4.52寫了一個RealTime的程式 > 顯示人機界面希望用VB或Delphi之類的軟體寫,請問由人機端給的資料 > 如何利用sharememory或filemapping等模式跟BC++程式互通,可否告知 > 在BC++端需要用哪些函式,而VB端要用哪些函式才能完成彼此溝通的目的。 Win16 or Win32 ? 如果是 Win16, 應該直接透過一個 DLL 來做就可以了. Win32 的話, 可使用 CreateFileMapping((HANDLE)0xFFFFFFFF,...); 這個 API 來做. VB 端, 看起來, 做個 C/C++ 的 DLL 讓 VB call 會比較方便. > -------------------------------------------------------------------------- < 發信人: "青衫" <cin@jstek.com.tw>, 看板: Programming 標 題: Re: 請問關於sharememory的問題 發信站: SEEDNet News Service (Tue Dec 29 15:50:02 1998) 轉信站: Ptt!news.ntu!feeder.seed.net.tw!news.seed.net.tw!not-for-mail > > 想請教程式高手,小弟用borland C++ 4.52寫了一個RealTime的程式 > > 顯示人機界面希望用VB或Delphi之類的軟體寫,請問由人機端給的資料 > > 如何利用sharememory或filemapping等模式跟BC++程式互通,可否告知 > > 在BC++端需要用哪些函式,而VB端要用哪些函式才能完成彼此溝通的目的。 > > Win16 or Win32 ? > 如果是 Win16, 應該直接透過一個 DLL 來做就可以了. > Win32 的話, 可使用 CreateFileMapping((HANDLE)0xFFFFFFFF,...); > 這個 API 來做. VB 端, 看起來, 做個 C/C++ 的 DLL 讓 VB call > 會比較方便. 可能用DLL較好吧. 我試過用CreateFileMapping, 問題很多, 動不動就violation error出來... :( 例如有structure的參數, 用NULL較沒問題, 若隨便填(有一本書的範例便是如此), 結果就是當! 如此雖然可以資料互通,但還有其他的問題. 例如在VB中,Size我給了1KB, 結果BC++硬是在讀到800多byte便當了. (不一定在何處,看資料) 把Size加大便可以了... :( 不過用DLL也遇到不少問題. 我曾寫了一個DLL做為VB與BC++的通訊界面,由DLL處理通訊問題, VB和BC++均設入call back函數.結果在call back BC++時,函數有進 入,但寫入Global Variable硬是無法寫入(不知寫到那裡去了...) 怎麼檢查寫法與流程都沒有問題. 唉!十幾年的Programming經驗,栽在Windows系統上一籌莫展... :( 最氣的是,有時只要一個Windows Patch檔灌進去,問題便不改自解, 害我花了好幾天找得要死... -- 青衫詩客 - 小邱.