问题描述如下,下面是VC++的头文件的声明:
struct CIRCLE
{
POINT center;
int r;
};struct SXXItem
{
CIRCLE c;
double confidence;
SXXItem *pNext;
SXXItem(){ confidence = 1.0; pNext = NULL; }
};typedef vector<SXXItem> XXItems; extern "C" __declspec(dllimport) int DetectXX(unsigned char* pImage, int w, int h, int step, XXItems &XXs);我翻译的结果:
TCircle = record
Center: TPoint;
r: Integer;
end; pTXXItem = ^TXXItem; TXXItem = record
Circle: TCircle;
Confidence: Double;
pNext: pTXXItem;
end; TSingleFaceItemArray = array of TFaceItem;function DetectFace(pImage: pByte; w, h, step: Integer; var Faces: TSingleFaceItemArray): Integer; cdecl; external 'FD_API.DLL';无法正常出结果,求解答。
struct CIRCLE
{
POINT center;
int r;
};struct SXXItem
{
CIRCLE c;
double confidence;
SXXItem *pNext;
SXXItem(){ confidence = 1.0; pNext = NULL; }
};typedef vector<SXXItem> XXItems; extern "C" __declspec(dllimport) int DetectXX(unsigned char* pImage, int w, int h, int step, XXItems &XXs);我翻译的结果:
TCircle = record
Center: TPoint;
r: Integer;
end; pTXXItem = ^TXXItem; TXXItem = record
Circle: TCircle;
Confidence: Double;
pNext: pTXXItem;
end; TSingleFaceItemArray = array of TFaceItem;function DetectFace(pImage: pByte; w, h, step: Integer; var Faces: TSingleFaceItemArray): Integer; cdecl; external 'FD_API.DLL';无法正常出结果,求解答。
TSingleXXItemArray = array of TXXItem;function DetectXX(pImage: pByte; w, h, step: Integer; var Faces: TSingleXXItemArray): Integer; cdecl; external 'FD_API.DLL';
必须先把这个vector转为一个静态数据结构,比如标准数组,或对其进行序列化。
TXX = packed record
vector类似delphi的TList。C++ STL特有的
----------------------------------
起码不能够直接实现了,可以考虑lexchou的方法,再另外用VC做一个接口dll。