小沛 <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檔灌進去,問題便不改自解,
害我花了好幾天找得要死...
--
青衫詩客 - 小邱.