请问怎样将以下C++调用的DLL改为Delphi调用DLL ( 积分: 100 )

  • 主题发起人 主题发起人 大王生
  • 开始时间 开始时间

大王生

Unregistered / Unconfirmed
GUEST, unregistred user!
请帮忙将调用C++的DLL改为Delphi调用DLL,谢谢
加入我的收藏
楼主: 以下为C++调用方式:
int UMDLL_EnumerateDevices();
int UMDLL_GetDriveList(int DevIndex,char *strDriveList);
BOOL UMDLL_IsDriveReady(int DevIndex,UCHAR LunIndex);
void UMDLL_CloseAllDevices();

//Get Total Lun
int UMDLL_GetTotalLunNumber(int DevIndex);
//Get Capacity
DWORD UMDLL_GetTotalCapacity(int DevIndex);
DWORD UMDLL_GetHiddenCapacity(int DevIndex);
DWORD UMDLL_GetLUN0Capacity(int DevIndex);
DWORD UMDLL_GetLUN1Capacity(int DevIndex);
DWORD UMDLL_GetLUN2Capacity(int DevIndex);

//Hidden Buffer
BOOL UMDLL_ReadHiddenSectors(int DevIndex,DWORD dwStartSector,DWORD dwSectorCount,LPBYTE pReadBuffer);
BOOL UMDLL_WriteHiddenSectors(int DevIndex,DWORD dwStartSector,DWORD dwSectorCount,LPBYTE pWriteBuffer);

下面是Delphi调用方式:(我试出了第一个,请大家帮忙将其它的定义写出来,谢谢!)
function UMDLL_EnumerateDevices(): integer;stdcall;external 'UM02FPS.dll';
 
int UMDLL_GetDriveList(int DevIndex,char *strDriveList);
这个我也不知道怎么写了...关键是char *strDriveList,难道是strDriveList: ^Char或者是strDriveList: PChar看来希望有高手指点了

BOOL UMDLL_IsDriveReady(int DevIndex,UCHAR LunIndex);
function UMDLL_IsDriveReady(DevIndex: Integer;LunIndex: Byte):Boolean;stdcall;external 'UM02FPS.dll';

void UMDLL_CloseAllDevices();
function UMDLL_CloseAllDevices:stdcall;external 'UM02FPS.dll';

DWORD UMDLL_GetTotalCapacity(int DevIndex);
function UMDLL_GetTotalCapacity(DevIndex: Integer):Longword;stdcall;external 'UM02FPS.dll';

BOOL UMDLL_ReadHiddenSectors(int DevIndex,DWORD dwStartSector,DWORD dwSectorCount,LPBYTE pReadBuffer);
function UMDLL_ReadHiddenSectors(DevIndex: Integer;dwStartSector: Longword;dwSectorCount: Longword;pReadBuffer: PChar):Boolean;stdcall;external 'UM02FPS.dll';
同类型的只写了一个,其他自己写吧
 
char *strDriveList
在delphi下面 可以用strDriveList:^pchar
在用这个指针之前需要new,分配内存单元,这个和C++不一样
 
高手们帮我将下面的句子转换为Delphi 啊,谢谢拉
typedef void __stdcall (*fun_AddResult)(char pDataStr[10][255],double pDataDouble[100]);

extern "C" void __declspec(dllimport) __stdcall FanSelect(
void *pSeriesNames,// YLDStr * (typedef struct{char Data[255];} YLDStr;)
const int pSeriesNameCount,
void *pSubSeriesNames,//YLDStr * (typedef struct{char Data[255];} YLDStr;)
const int pSubSeriesNameCount,
const double &pFlow,
const int &pFlowUnitType,
fun_AddResult pAddResult//函数指针,用于回传数据
);
 
后退
顶部