|
分類:[C#]
初めて質問させていただきます。
C言語で書かれた自作のDLLをC#から呼び出すため、
以下のようなプログラムを書きました。
unsafe class Dll
{
[DllImport("hoge.dll")]
public static extern int createFile(char* path, char* data);
}
public object foo(string bar, params string[] baz)
{
object ret = "";
unsafe
{
fixed (char* path = args[0], texts=args[1])
{
Dll.createFile(path,texts);
}
}
ret = "Success";
return ret;
}
DLLの第1引数はファイルパス、第2引数はファイルに書き込む内容です。
これを実行すると、DLLの呼び出し自体は成功しているのですが、
処理結果を見ると、引数の先頭文字しかDLLに渡っておりません。
具体的には、
args[0]に"hogehoge.csv",args[1]に"a,b,c,d"を設定すると、
aという内容のhというファイルが作られる、という現象です。
おそらく基本的なことを理解していないために、おかしなプログラムを
書いているのだと思いますが、この後何を調べてよいのかわからず、
行き詰ってしまいました。
原因や解決策への道しるべなど、ご教示いただけば幸いでごさいます。
何卒よろしくお願いいたします。
[環境]
Windows XP,Visual Studio 2008(C++/C#),.NET Framework 3.5
|