私はC言語で自分のプログラムにCライブラリを使いたいと思っています。
このライブラリには、カメラを制御するcという機能を持つヘッダファイルが含まれています。C/C++からC#へのDllImport宣言を定義する方法
Cにおけるこれらの機能のいくつかを、Fg_Struct
そして最後に、このtypedefでは、だから今
Typedef struct Fg_Struct_s Fg_Struct
として宣言されているが、私はヘッダファイルからこれらの関数を使用したいと呼ばれるのtypedefで指し*fg
と呼ばれるポインタを使用私のC#プログラムで。 私は新しいクラスを作成して、これらの関数をDLLvarary からpinvoker-addon経由でインポートしました。
pinvoker-addonは、これらの関数の新しい宣言を作成しました。 (非管理から管理)。
これらの新しい宣言された関数のほとんどは、Visual Studio
Fg_Struct [] Fg
、iがCでエラーdiscription
を呼び出すためFg_getLastErrorDiscripstion関数を使用することができます。
fgrab_struct.h
typedef struct Fg_Struct_s Fg_Struct;
fgrab-prototyp.h
include "struct.h"
const char *const Fg_getLastErrorDescription(Fg_Struct *Fg);
Fg_Struct *fg = NULL;
fg = Fg_Init(DLLNAME, boardNr)
fprintf(stderr, "error in Fg_Init: %s\n", Fg_getLastErrorDescription(NULL));
main.cppには今、私はC#でそれを使用したい:
CAM_SISO.cs
[DllImport("fglib5.dll", SetLastError = true, CallingConvention = CallingConvention.Cdecl)]
public extern static IntPtr Fg_getLastErrorDescription(Fg_Struct [] Fg);`
私はC#プログラミングで本当に新しいですし、すべてで調査私は正解を見つけられませんでした.Fg_Struct [] Fgを宣言または定義してC#でFg_getLastErrorDiscription関数を使用する方法を教えてください。
彼のDLLはプレーン関数と標準のレイアウトタイプをエクスポートします。これは、 'declspec(dllexport)'クラスにアクセスする方法を尋ねることの重複ではありません。 –
私は彼の質問が構造 "Fg_Struct [] Fg"を定義するために特定されていると思いますので、重複しないかもしれません – Naidu