c++的方法如下
_declspec(dllexport) char* Test(char* pfile,RECT* rect,char* result,BYTE *pcut)
{
rect->left=pcut[55500];
rect->right=20;
rect->top=30;
rect->bottom=40;
pcut[0]=100;
pcut[1]=200;
pcut[2]=300;
pcut[3]=400;
pcut[4]=500;
pcut[5]=600;
pcut[6]=700;
pcut[7]=800;
pcut[8]=900;
pcut[9]=110;
result="abcdef";
return "0";
}
要求:pfile,rect,result,pcut这4个值既是入参也是出参,用C#代码调用,我的调用方式为:
Test(ref string pfile, ref Rectangle rect, ref IntPtr result, ref IntPtr pcut);
但未能成功!请教高手,如调成功立刻结帖,在线等!
_declspec(dllexport) char* Test(char* pfile,RECT* rect,char* result,BYTE *pcut)
{
rect->left=pcut[55500];
rect->right=20;
rect->top=30;
rect->bottom=40;
pcut[0]=100;
pcut[1]=200;
pcut[2]=300;
pcut[3]=400;
pcut[4]=500;
pcut[5]=600;
pcut[6]=700;
pcut[7]=800;
pcut[8]=900;
pcut[9]=110;
result="abcdef";
return "0";
}
要求:pfile,rect,result,pcut这4个值既是入参也是出参,用C#代码调用,我的调用方式为:
Test(ref string pfile, ref Rectangle rect, ref IntPtr result, ref IntPtr pcut);
但未能成功!请教高手,如调成功立刻结帖,在线等!
//_declspec(dllexport) char* Test(char* pfile,RECT* rect,char* result,BYTE *pcut)
[DllImport(dllname.dll, CharSet=CharSet.Ansi)]
public static external string Test(
ref string pfile,
ref Rectangle rect,
ref string result,
[MarshalAs(UnmanagedType.LPArray, SizeConst=10)]
byte[] pcut
);
void Test(string file,ref Rect rect,string result,btye[] cut);
_declspec(dllexport) char* Test(char* pfile,RECT* rect,char* result,BYTE *pcut)
{
rect->left=pcut[55500];
rect->right=20;
rect->top=30;
rect->bottom=40;
pcut[0]=100;
pcut[1]=200;
pcut[2]=300;
pcut[3]=400;
pcut[4]=500;
pcut[5]=600;
pcut[6]=700;
pcut[7]=800;
pcut[8]=900;
pcut[9]=110;
result="abcdef";
pfile ="test";
return "0";
}
C#的:
public static extern string Test(ref string pfile, ref Rectangle rect,ref string result, [MarshalAs(UnmanagedType.LPArray, SizeConst = 10)] byte[] pcut);