Cで書かれたDllをC#で利用したい(DllImportを使って)のですが、
引数の型があってないせいか、処理がうごいていない気がします。
Cではこんな感じでしようされているのですがC#で宣言する際はどのように関数を宣言してあげればよいのか分からず困っています。
どなたかご教授ください。
[Cで呼ぶ際のコード]
lang
1 char buf [100]; 2 char buf1[100]; 3 char buf2[100]; 4 char buf3[100]; 5 6 //メモリ操作などの処理... 7 8 TestFunction(buf,bif1,buf2,buf3,100)
[C#でこれで宣言して呼んでも処理がうまく動かない]
lang
1[DllImport(@"xxxx.dll", CharSet = CharSet.Auto, SetLastError = true)] 2 public static extern short TestFunction(StringBuilder buf, out StringBuilder buf1, out StringBuilder buf2, out StringBuilder buf3, int size);
C側のTestFunctionの定義を提示してください。
すみません。Test Functionの定義が自分も確認できないので、
第1引数で渡された文字列を操作して、第2、3,4に文字列を分ける処理というところまでしかわからないのですOTL
あと第5引数に文字列の最大サイズが入るとまでしかわからないのですOTL
という事は、このDLLが、Cからなら、正しく動作するかどうかの、検証も不可能という事になりませんか? それ以前に、Cで動作しているコードの、サンプルなどの、該当部分が無いのですか?
さきほどサンプルとソースを担当の方にいただきました。ただやはりDLLの使っている関数にも少し問題があることがわかりました。
回答1件
あなたの回答
tips
プレビュー