私のC++コードの文字列をC++コードの関数に渡すのに問題があります。C#:文字列配列をC++ dll/dylibに渡す
C#コード:
[DllImport("array2d.dylib", EntryPoint = "process_array", CallingConvention = CallingConvention.Cdecl)]
public static extern int process_array(String[] a, int b);
static void Main(string[] args)
{
String[] list = new String[] { "Abc" , "def", "ghi", "jkl"};
int josh = process_array(list, 2);
}
私のC++コード:
#include <string>
#include <iostream>
int process_array(char** array, int rows)
{
std::string s1 ("Array : [");
for (int i = 0; i < 6; ++i){
s1.append(array[i]);
s1.append(", ");
}
s1.append("] \n");
return 1;
}
int main()
{
}
そして、私はなってきているエラーは、次のとおりです。
未処理の例外:System.EntryPointNotFoundException:エントリを見つけることができません。 'array2d.dylib'内の 'process_array'という名前のポイントを作成します。 at JoshServer.Program.process_array(String [] a、Int32 b)
ご協力いただきありがとうございます。
cppファイルは機能をエクスポートしていますか? dllexportのようなキーワードが必要です。 cppでdllを作成する方法を読んでください。 –