这些代码用DELPHI怎么翻译? (50分)

  • 主题发起人 主题发起人 decade
  • 开始时间 开始时间
D

decade

Unregistered / Unconfirmed
GUEST, unregistred user!
请delphi高手翻译下列代码,谢谢:
struct MainController // M2 System Controller
{
public:
virtual ~MainController(){};
virtual DWORD WINAPI DBGetRecord(const char* userID, UserRecord* pUserRecord) = 0;
virtual DWORD WINAPI DBGetLogCount(DWORD* logCount) = 0;
virtual DWORD WINAPI DBGetLogData(DWORD recNo, LogRecord* pLogRecord) = 0;
virtual DWORD WINAPI DBDeleteAllLog() = 0;
//---------------------------------------------------------------
// Utility fuction
virtual DWORD WINAPI RecoverMasterRec(void) = 0;
};
typedef MainController FAR* LPESC;
typedef DWORD (WINAPI* MainController_CreateFunc)(LPESC* ppESC);
typedef DWORD (WINAPI* MainController_DestroyFunc)(LPESC pESC);
__declspec(dllexport) DWORD WINAPI CreateControllerObject(LPESC* ppESC = NULL);
__declspec(dllexport) DWORD WINAPI DestroyControllerObject(LPESC pESC = NULL);
//---------------------------------------------------------------
// Hardware Control API
__declspec(dllexport) DWORD WINAPI M2InitLibray(void* createParam);
__declspec(dllexport) DWORD WINAPI M2ExitLibrary(void* createParam);
 
怎么又要翻了:
virtual 表示虚方法(成员过程/函数)
后面有 =0 表示是“纯虚”
~MainController()是析构函数,和Delphi 的 Destroy 对应。
“FAR” 不需要翻译,现在都是 FAR
最后四个是DLL的输出函数,应该有声明、实现和 exports
 
type
MainController = class // M2 System Controller
public:
destructor MainController;//"~"在DELPHI中的非法字符
function DBGetRecord(const userID:PChar;var PUserRecord:UserRecord):DWORD;stdcall;abstract;virtual;
function DBGetLogCount(var logCount:DWORD):DWORD;stdcall;abstract;virtual;
function DBGetLogData(recNo:DWORD;var pLogRecord: LogRecord):DWord:stdcall;abstract;virtual;
funciton DBDeleteAllLog():DWORD;stdcall;abstract;virtual:
//---------------------------------------------------------------
// Utility fuction
function RecoverMasterRec(void) :DWORD;stdcall;abstract;virtual;
end;

{ typedef MainController = FAR* LPESC;
typedef DWORD (WINAPI* MainController_CreateFunc)(LPESC* ppESC);
typedef DWORD (WINAPI* MainController_DestroyFunc)(LPESC pESC);}不会,还请高手赐教
exports
CreateControllerObject;
DestroyControllerObject;
//---------------------------------------------------------------
// Hardware Control API
M2InitLibray;
M2ExitLibrary;
end;
 
请帮帮忙,俺c学不好,delphi也刚入门:
{ typedef MainController = FAR* LPESC;
typedef DWORD (WINAPI* MainController_CreateFunc)(LPESC* ppESC);
typedef DWORD (WINAPI* MainController_DestroyFunc)(LPESC pESC);}
不会,还请高手赐教
 
第一句意思是 LPESC 是指向类MainController的指针,
在Delphi中声明的类类型本身就是指针,在使用时要注意。
第二第三句声明了两个函数类型
type
LPESC=^MainController;
MainController_CreateFunc=function(var ppESC:LPESC):pDWord;Pascal;
MainController_DestroyFunc=function(pESC:LPESC):pDWord;Pascal;
 
再次感谢jsxjd的赐教:
我有个问题,关于delphi的指针问题,是不是没一种类型的指针都是在其类型名称前加P
如char的指针类型为:Pchar,dword的为Pdword?
 
是的。这在内部已经定义。
 
谢谢各位的帮助,现在给大家分。
 
谢谢各位的帮助,现在给大家分。
 
后退
顶部