作者twowater (twowater)
看板C_and_CPP
標題[問題] VC++ WindowsForm + boost interprocess
時間Mon Nov 19 01:41:08 2018
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++2015
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
boost 1.61, 1.68 情況相同
問題(Question):
開一個 CLR Empty Project 空白視窗程式,什麼東西都沒放。
光是在 MyForm.h 最上面,#pragma once 下方
#include <boost/interprocess/managed_shared_memory.hpp>
執行時就會出現:
Exception thrown at 0x00007FF8C8400220 (ntdll.dll) in WinForm_Test.exe:
0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
只要拿掉該行就可以正常跑出空白視窗
餵入的資料(Input):
啥都沒有
預期的正確結果(Expected Output):
至少跳出一個空白視窗吧
錯誤結果(Wrong Output):
同問題描述
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
同問題描述
補充說明(Supplement):
用 console 測試沒有問題,用 windows form 連 #include 都有問題...
本人 coding 功力就完全是個外行,google 了好一陣子,還沒什麼頭緒,
說不定這其實是很簡單的問題,希望經驗豐富的板大指點一下
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.153.167
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1542562873.A.E71.html
1F:→ FrozenMoment: 我個人比較建議你 UI 用 C#,C++ DLL可以在C#呼叫 11/19 08:02
2F:→ twowater: 嗯...情況可能不允許我整個改用 C# 重寫。或者是在 VC++ 11/19 10:54
3F:→ twowater: 有什麼其他簡單的方法可以做到interprocess communicat- 11/19 10:56
4F:→ twowater: on 呢? 我只需要在一個x64視窗程式與一個x86 console 之 11/19 10:56
5F:→ twowater: 間做非常簡單的溝通,來往的變數頂多就是 double 或 int 11/19 10:57
6F:→ twowater: 而已。 11/19 10:57
7F:推 kwpn: 建個C++ DLL(引用boost),給C++/CLI call如何 11/19 19:09
8F:→ klsdf: windows上有namedpipe能用 11/29 23:14