0

本当にタイトルのすべて。C ++で記述され、dllにコンパイルされたライブラリがあります。この機能を ac# プログラムで使用したいと思います。ライブラリのクラス/関数を C# から直接使用することはできますか?管理された環境で使用するには、ラッパー コードを記述する必要がありますか? 安全でないコンテキストで使用できますか? これがばかげた質問でしたら申し訳ありません - 私は c# に移行しようとしている c++ プログラマーです。

psライブラリはサードパーティのものなので、時間があったとしてもC#に直接移植することはできません。

4

3 に答える 3

2

C++ dll がその機能 をどのようにエクスポートするかによって異なります。

C++ クラスを使用する場合は、C++ クラスを使用し、.NET クラスを公開してそれらと対話するラッパーを C++/CLI で構築するのが最善の策です。

「古典的な」C スタイルの関数を使用する場合は、p-invoke を使用して関数を直接呼び出すことができます。これは、システム DLL が好んでアクセスする方法に似ていSystem32ますUser32

于 2013-10-02T14:25:47.020 に答える
0

はい、呼び出して System.Runtime.InteropServices 機能を使用する関数のシグネチャを知っているだけで可能です。
支援するには、このツールPInvoke Interop Assistantを使用してください。このツールは、呼び出しで渡されるデータ構造を定義するのに役立ちます。

于 2013-10-02T14:41:44.267 に答える