0
votes

I am convert component from delphi 5 to delphi xe5`. I build it completely but still while installation following error come

The procedure entry point SymGetSymFromAddrW could not be located in the dynamic link library IMAGEHLP.DLL

1
As I Study in this in Delphi 5 structure of Imagehlp.pas is different and now in Delphi XE5 structure is different. - Abhishek Mestri
Delphi 5 : function SymGetSymFromAddr; external ImagehlpLib name 'SymGetSymFromAddr'; - Abhishek Mestri
Delphi XE5 :function SymGetSymFromAddr; external ImagehlpLib name 'SymGetSymFromAddrW'; - Abhishek Mestri
help me in this for direction - Abhishek Mestri
Your question title and text say XE5, but your tag says XE2. You should use the tags that actually apply to your question. - Ken White

1 Answers

1
votes

SymGetSymFromAddrW has been superceded by SymGetSymFromAddr64 on modern Windows versions. You need to use it instead. It has a very similar definition as SymGetSymFromAddr - just redefine it yourself, and use your version instead:

function SymGetSymFromAddr64(hProcess: THandle; dwAddr: DWord64;
  pdwDisplacement: PDWord64; var Symbol: TImagehlpSymbol): Bool; stdcall;

function SymGetSymFromAddr64;    external ImagehlpLib name 'SymGetSymFromAddr64W';

See the documentation for SymGetSymFromAddr64 for more info.