[問題] DllImport

看板C_Sharp作者 (萬般帶不走)時間15年前 (2009/06/12 06:54), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/2 (看更多)
小弟使用dllimport 引入廠商的API 結果出現 嘗試是讀取或寫入受保護的記憶體, 這通常表示其他記憶體毀損 C++ API int __stdcall SKQuoteLib_GetStockByNo([in] const TCHAR* lpszStockNo, [in,out] TStock* pStock) typedef struct STOCK { short m_sStockidx; // 系統自行定義的股票代碼 char m_cMarketNo; // 市場代號0x00上市;0x01上櫃;0x02期貨;0x03選擇權;0x04興櫃 char m_caStockNo[20]; // 股票代號 char m_caName[10]; // 股票名稱 int m_nOpen; // 開盤價 int m_nHigh; // 最高價 int m_nLow; // 最低價 int m_nClose; // 成交價 } TStock; 小弟的 C# [DllImport("SKQuoteLib.dll",CharSet=CharSet.Ansi)] public static extern int SKQuoteLib_GetStockByNo(string strStockNo, ref TStock stk); Status= SKQuoteLib_GetStockByNo("2330", ref stock); [StructLayout(LayoutKind.Sequential)] public struct TStock { public int Stockidx; public byte MarketNo; public string StockNo; public string StockName; public long Open; public long High; public long Low; public long Close; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.234.186

06/12 06:54, , 1F
請教板上的大大 解答 感激不盡
06/12 06:54, 1F

06/12 11:14, , 2F
C++的int是4byte,你結構裏用long(8byte),似乎不對應
06/12 11:14, 2F

06/12 11:16, , 3F
請學習這篇: http://tinyurl.com/l2vvnm
06/12 11:16, 3F
文章代碼(AID): #1ACOiMmz (C_Sharp)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
問題
2
3
文章代碼(AID): #1ACOiMmz (C_Sharp)