STM8L103 发表于 2010-9-13 11:42:52

C#如何调用C DLL呢?

C#如何调用C DLL呢?

yajira 发表于 2010-9-13 11:50:16

MSDN文档有说的

using System.Runtime.InteropServices;

      
      public static extern IntPtr ImmGetContext( IntPtr hWnd );

      
      public static extern IntPtr ImmAssociateContext( IntPtr hWnd, IntPtr hIMC );

      
      static extern int ImmGetCompositionString( IntPtr hIMC, int dwIndex, StringBuilder lpBuf, int dwBufLen );

诸如这种方式吧

cody 发表于 2010-9-13 13:09:33

给你来个实例


      public static extern bool CloseHandle( IntPtr hObject );

STM8L103 发表于 2010-9-13 13:50:50

如果C函数传递,或者返回字符串指针,C#如何调用?


假设C函数:
extern "C" DLL_EXTERNCHAR *__stdcall get_str(void);

extern "C" DLL_EXTERNvoid    __stdcall set_str(CHAR *);

extern "C" DLL_EXTERNCHAR *__stdcall get_set_str(CHAR *);


C#如何调用?

camtime 发表于 2010-9-13 14:01:20

C# 有个 System.Runtime.InteropServices.Marshal类
专处理兼容C++传过来的指针资料。
或者开unsafe模式也可以用指针。
页: [1]
查看完整版本: C#如何调用C DLL呢?