`
cloudtech
  • 浏览: 4590322 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

C# 调用C写的DLL时 对应的int* 类型返回值转化为 IntPtr

 
阅读更多

C中代码:

  1. int* read(char*filename)
  2. {
  3. .......
  4. }

C#中代码:
[csharp] view plaincopy
  1. [DllImport("myC.dll",EntryPoint="read",CharSet=CharSet.Auto)]
  2. publicstaticextern IntPtr read(refbytefilename);
调用示例:
[csharp] view plaincopy
  1. stringname=@"d:\result\Gaussian_6_0.3.jpg";
  2. byte[]filename=newbyte[100];
  3. for(inti=0;i<name.Length;i++)
  4. {
  5. filename[i]=(byte)name[i];
  6. }
  7. IntPrt data = new IntPtr();
  8. data = liblept168.read(reffilename[0]);

分享到:
评论

相关推荐

    C#调用 C++dll(包含传递自定义结构数组)

    当C#调用C++dll时,需要传递自定义结构的数组,该怎么办? 示例给出了方案

    C# 调用C++ DLL的类型转换

    //C#调用C++的DLL搜集整理的所有数据类型转换方式,可能会有重复或者多种方案,自己多测试 //c++:HANDLE(void *) —- c#:System.IntPtr //c++:Byte(unsigned char) —- c#:System.Byte //c++:SHORT(short) —- c#...

    通过avicap32.dll操作视频的类(C#)

    public static extern IntPtr capCreateCaptureWindow(string lpszWindowName, int dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hwndParent, int nID); /************参数说明************* * * ...

    C#调用C++版本dll时的类型转换需要注意的问题小结

    C#对于C++的dll引用时,经常会遇到类型转换和struct的转换 1. C++ 里的Char类型是1 个字节,c#里的Char是两个字节,不可以对应使用;可使用c#里的byte对应 2. structType temp = (structType)Marshal.PtrToStructure...

    从指定文件byte[]内存数组加载非托管DLL API

    C#可以很轻松从内存或资源加载托管DLL..但C++ kernel32.dll LoadLibrary只能加载指定路径非托管DLL..有了kernel.dll现在好了.可以像C#一样轻松从内存或资源里加载非托管DLL.. 从指定文件byte[]内存数组加载非托管...

    C#中的IntPtr

    C#中的IntPtr类型称为“平台特定的整数类型”,它们用于本机资源,如窗口句柄。 资源的大小取决于使用的硬件和操作系统,但其大小总是足以包含系统的指针(因此也可以包含资源的名称)。 例如,我们可以在vs2008...

    C#屏蔽Windows快捷键及任务管理器

    C#屏蔽Windows快捷键及任务管理器 public delegate int HookProc(int nCode, int wParam, IntPtr lParam); private static int hHook = 0; public const int WH_KEYBOARD_LL = 13; //LowLevel键盘截获,如果是WH...

    C#浏览器编程,学习使用

    在“新建项目”对话框的项目类型窗口中选中“Visual C#”作为项目开发语言,在模板窗口中选中“Windows 应用程序”作为项目开发模板,在“名称”、“位置”编辑框中输入自己设定的项目名字和项目存储位置,本讲义...

    能被c#调用的opengl模块

    该模块使用c++动态库编程技术,实现opengl画三维图,并能被vs2008的C#调用,传递个panel的指针(INTPTR)即可。

    【VS2010 C# 代码】简单的鼠标钩子应用实例

    Microsoft Visual Studio 2010做的C#简单的鼠标钩子应用实例实例,实现实时监控鼠标位置(需要编译后,在Release文件夹那里运行)主要代码: public delegate int HookProc(int nCode, IntPtr wParam, IntPtr lParam...

    【VS2010 C# 代码】实时监听鼠标位置

    Microsoft Visual Studio 2010做的C#简单的实时监听鼠标位置实例,主要代码: public class Win32Api { [StructLayout(LayoutKind.Sequential)] public class POINT { public int x; public int y; } [StructLayout...

    C#调用VC++.net 2005动态链接库

    C#调用VC++.net 2005动态链接库 使用IntPtr 包含 BSTR char**

    C# 游动小金鱼 动态屏保

    C#游动屏保小金鱼, [DllImport("gdi32.dll", ExactSpelling = true, SetLastError = true)] public static extern IntPtr CreateCompatibleDC(IntPtr hDC); [DllImport("user32.dll", ExactSpelling = true, ...

    C#窗体实现热键控制窗口隐藏显示

    C#窗体实现热键控制窗口隐藏显示 主要类文件 class HotKey { //如果函数执行成功,返回值不为0。 //如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。 [DllImport("user32.dll", ...

    EnumAVDevice.dll 获取系统中音视频设备名称

    C++ dll 可用C#调用 //获取系统中音视频设备名,和FFmpeg名字完全匹配 //dev 设备名数组 //type:0音频设备,1视频设备 //num,获取的设备数量 extern "C" TESTDLL_API HRESULT GetAVDevices(TCHAR * *dev, int type...

    浅谈C#互操作的内存溢出问题

    c#调用C++DLL代码,发现了一个隐藏很深的问题。 危害很大,而且不易察觉。 大概是申明c++的函数时候,有一个long类型的指针。在C#中我的申明成了这样: public extern void Method(ref uint para); 最初怎么也没有...

    C# 钩子程序

    记录用户的键盘操作,可进行存储。程序用途很广。 安装钩子: [DllImport("user32.dll", CharSet = CharSet....当钩子安装后,自动写如钩子链表,挂入系统,监视指定的事件,这里是键盘事件,当事件发生时先通过钩子

    c# Speex.dll,SpeexLib.dll

    Speex进行语音压缩,C#编码后的库文件,使用方法Speex sp = new Speex(new Intptr(4));质量///// 然后就可以使用sp.Encode() 和sp.Dencode()..销毁sp.dispose()

    C#调用C++动态库的一些理解

    c#调用c++动态库一般我们这样写  [DllImport("UCamer.dll", CallingConvention = CallingConvention.Winapi)]  public extern static void Disp_Destroy(IntPtr hShow);  DllImport的第一个参数UCamer.dll是...

    如何在c#程序中模拟域帐户进行登录操作

    public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); } class Program { ……

Global site tag (gtag.js) - Google Analytics