4

C#コードで関数を使用したいDLLがあります。そのDLLの関数は次のとおりです。

extern "C"
{
  __declspec(dllimport)
  const char* __stdcall ZAJsonRequestA(const char *szReq);

  __declspec(dllimport)
  const wchar_t* __stdcall ZAJsonRequestW(const wchar_t *szReq);

  __declspec(dllimport)
  const BSTR __stdcall ZAJsonRequestBSTR(BSTR sReq);
}

このdllは他の言語のように見えるので、誰かがC#プロジェクトでそれを使用する方法を教えてもらえますか?

4

2 に答える 2

4

詳細な説明については、Code Project に関する次の記事をご覧ください。

リンクされた記事の小さなサンプルは以下のとおりです

関数を呼び出すには、methodNameと言います

int __declspec(dllexport) methodName(int b)
{
      return b;
}

以下の c# に示すように、上記のメソッドを含むクラス ライブラリ (MethodNameLibrary.dll) をインクルードします。

class Program
{
   [DllImport(@"c:\MethodNameLibrary.dll")]
   private static extern int methodName(int b);
   static void Main(string[] args)
   {
       Console.WriteLine(methodName(3));
   }
}
于 2013-04-09T07:01:37.583 に答える
0

DllImportおよびMarshalAs属性を使用します。

于 2013-04-09T06:51:36.707 に答える