日期:2014-05-20  浏览次数:21200 次

C++转成C#
typedef   LONG   *   HLoader;

struct   _tagData
{
LONG *pLen;
BYTE m_pID[20];
char m_szInfo[256];
TCHAR m_szExtInfo[512];
LPCTSTR lpszDes;
};

BOOL   Init(BYTE   *pBy,   char   *lpszFile,   _tagData   *pData,   int   &nCount,   LPCTSTR   lpszUser[],   const   char   *lpszIni=NULL,   const   BYTE   *pID=NULL   );


void   Close(   HLoader   hLoader   );


怎么把这些转成C#?

------解决方案--------------------
换成类,有指针的值换成引用(ref,out),试试
------解决方案--------------------
你的参数太多,不健壮。
要做的话把它放到DLL中,这样方便,通用。
用c#来实现,你可以参考其调用api函数的例子:
[StructLayout(LayoutKind.Sequential)]
public struct RECT //可以翻版c++ 中的定义
{
public int left;
public int top;
public int right;
public int bottom;
public int Width() { return right - left; }
public int Height() { return bottom - top; }
public POINT TopLeft() { return new POINT(left, top); }
public SIZE Size() { return new SIZE(Width(), Height()); }
public override string ToString()
{
String s = String.Format( "{0}x{1} ", TopLeft(), Size());
return s;
}
}
[DllImport( "user32.dll ")]
public static extern int GetWindowRect(int hwnd, ref RECT rc);//自己翻版方法,参数一样就可以了
------解决方案--------------------
http://blog.csdn.net/ByWangler/archive/2006/04/18/667718.aspx