我是靠谱客的博主 重要橘子,最近开发中收集的这篇文章主要介绍c# char unsigned_unsigned char型**相当于C#和必须写在文件中的返回值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

I have to call a win32 dll function

int func1( int arg1, unsigned char **arg2, int *arg3);

and i need wrapped in c# as

public extern int fuc1(int arg1, out IntPtr arg2, out IntPtr arg3);

and i called it from a c# application as

int arg1;

IntPtr arg2 = IntPtr.Zero;

IntPtr arg3 = IntPtr.Zero;

func1(arg1,out arg2,out arg3);

Is the function declared in the c# wrapper as well as called in C# test app Correct ?

Now i need to store the arg2 in a text file. How to do that.

Got answer from Hans and i wrote it in a file using

System.IO.StreamWriter(@Application.StartupPath + "\Filename.txt");

file.WriteLine(arg2);

file.Close();

解决方案i have a free function in the dll to clear the memory

Then you have a shot at making this work. The function declaration ought to look like this:

[DllImport("foo.dll", CallingConvention = CallingConvention.Cdecl)]

private static extern int func1(int arg1, out IntPtr arg2, ref int arg3);

And you'd call it like this:

IntPtr ptr = IntPtr.Zero;

int dunno = 99;

string result = null;

int retval = func1(42, out ptr, ref dunno);

if (retval == success) {

result = Marshal.PtrToStringAnsi(ptr);

// etc...

}

if (ptr != IntPtr.Zero) func1free(ptr);

Where "func1free" is the otherwise undocumented function that releases the string.

最后

以上就是重要橘子为你收集整理的c# char unsigned_unsigned char型**相当于C#和必须写在文件中的返回值的全部内容,希望文章能够帮你解决c# char unsigned_unsigned char型**相当于C#和必须写在文件中的返回值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部