我有一個「本地」DLL,它帶有一些很好的函數,可以返回(並接受)指向根據特定C結構格式化的數據的指針。調用返回(並接受)指向結構的指針的本地DLL函數
在我的C#程序中,我不關心struct內部結構,我只想獲取並傳遞它們到本機函數。我已經設法鎖定DLL中的函數。 對於指針,我想過使用void *(作爲「未知指針」),因爲我真的不在乎指向結構的內部字段,我只需要存儲和使用指針將它傳遞給DLL庫函數。
但是,對於許多不同類型的數據使用void *會使我的代碼無法閱讀!有沒有什麼辦法在C#中typedef void * some_nicer_type_t?或者做那樣的事情?
謝謝,但IntPtr始終是IntPtr的一切。它可以更清潔,但對我來說,它就像void *一樣混亂無味。我試過typedef IntPtr someothertype_t但它不能編譯。我怎樣才能定義新類型?我想我應該使用一些解決方法,比如在一些對象中包裝IntPtr,然後使用包裝器來實現這些功能。恩,很煩人。 – gd1 2011-03-22 11:38:55
@Giacomo:更新了我的答案,但實際上它只是與您更新的評論重疊。 – 2011-03-22 11:45:09
謝謝你的熱心幫助和關注。這個解決方案是可以做到的最好的。 – gd1 2011-03-22 11:48:55