2012-03-07 58 views
10

我將不得不在2個應用程序之間實現一個WM_COPYDATA IPC。我似乎在互聯網上的樣本,但他們都只發送少於255個字符的字符串。WM_COPYDATA SendMessage - 它可以發送大字符串嗎?

我想發送一個大字符串(超過1K)到另一個進程使用WM_COPYDATA。可能嗎?有什麼限制?我應該發送流而不是字符串或記錄嗎?

這兩個應用程序都是由我使用Delphi 2010開發的。

+0

我爲什麼得到-1? – 2012-03-07 13:19:13

+3

我不知道。我給你+1來平衡它。有時在SO上有隨機選舉的選民,特別是在[tag:delphi]。幾天前,[我的一個問題]發生了同樣的事情(http://stackoverflow.com/questions/9572887/3d-library-recommendations-for-interactive-spatial-data-visualisation)。 – 2012-03-07 14:00:04

回答

8

沒有限制。您可以使用WM_COPYDATA,根據可用內存限制發送儘可能大的數據。

+0

那麼win32上基本上2個演出呢? :-) – 2012-03-07 18:37:32

+0

@Warren很難在32位進程中找到多少連續的地址空間。 – 2012-03-07 18:43:52

+2

如果你真的需要發送2GB的數據,最好使用臨時文件並傳遞文件名,或者改用COM的'IDataObject'和'IStream'接口。 – 2012-03-07 19:06:46

相關問題