首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C++转成C#解决办法

2012-03-27 
C++转成C#typedefLONG*HLoaderstruct_tagData{LONG*pLenBYTEm_pID[20]charm_szInfo[256]TCHARm_szExtI

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

struct   _tagData
{
LONG*pLen;
BYTEm_pID[20];
charm_szInfo[256];
TCHARm_szExtInfo[512];
LPCTSTRlpszDes;
};

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

热点排行