[問題] 關於撰dll負責兩程式溝通的方式!?

看板C_and_CPP (C/C++)作者 (超越自己)時間10年前 (2015/07/31 01:02), 10年前編輯推噓4(404)
留言8則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Windows -- 各位板友大家好, 近日需撰一dll負責另外兩支程式的溝通, 其中A程式載入dll後,由dll開File Mapping將需求的SQL參數傳入, dll建立了記憶體空間後,即SetEvent令B程式開始接收記憶體資料, 而B程式接收SQL參數後再拼成SQL指令下達。 不論Insert或是Select皆需回傳給dll成功或失敗, 尤其是若是Select可能還需要回傳查詢到的大量資料, 這部份似乎能再由B程式Free掉原先的記憶體空間, 重新建立相同的名稱,由dll接收。 只是SQL查詢到的資料大小是無法預估的, 該如何架構比較好呢?! 想請問板上先進採用File Mapping是個合適的作法嗎? 是否有更好的選擇呢!? 另未來也許會有其他程式需同時使用此dll, 可File Mapping及Event的名稱只有一個, 這要如何解決才好,懇請板上先進不吝賜教, 謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.201.239 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1438275763.A.CAF.html

07/31 01:19, , 1F
我以為 B 做完 Select 後,接著逐一 polling 每個 record
07/31 01:19, 1F

07/31 01:19, , 2F
換句話說B做 Select 後記憶體是吃 B 的 , 要傳多少給 dll
07/31 01:19, 2F

07/31 01:20, , 3F
是可議的 , 不一定要一次就傳完所有 recorder ?
07/31 01:20, 3F

07/31 06:06, , 4F
沒有主控程式,日後會出問題
07/31 06:06, 4F

07/31 07:00, , 5F
兩個程式是額外的process? 名稱只有一個的問題應該有辨法可
07/31 07:00, 5F

07/31 07:00, , 6F
以修改成動態產生名稱
07/31 07:00, 6F
回E大:這好像可行,謝謝您。 回j大:何謂沒有主控程式?會有什麼問題呢?能否賜教?謝謝。 k大:對的,僅是提供SQL功能給其他程式呼叫, 改成動態產生有想過,這樣的話似乎能解決Event和Shared Memory的名稱問題, 那是否dll和B程式都要加入Thread來施行呢!? ※ 編輯: BIAO (36.230.201.239), 07/31/2015 09:51:00

07/31 13:47, , 7F
WM_COPYDATA滿方便的啊
07/31 13:47, 7F

08/02 20:22, , 8F
謝謝您提供資訊!
08/02 20:22, 8F
文章代碼(AID): #1LkbYpol (C_and_CPP)
文章代碼(AID): #1LkbYpol (C_and_CPP)