[fpc-pascal] Cannot find entry point of a routine inside a windows 64 dll

Dennis dec12 at avidsoft.com.hk
Wed Dec 13 03:03:49 CET 2017


I am converting my windows 32 program to 64 bit.
It compiled with lazarus without any problem.(fpc 3.0.2)

I also compile the dll that is used, into a 64 bit dll.

However, when I ran the 64 bit program, windows reported 'cannot find 
the entry point "the routine name in the dll" (the dll file name)

In the routine of the dll, there is an out parameter of type WideString,

could this be the problem?

If not, what else could be the cause of the problem?

Below is the calling program:
Dennis

---------

const
   ExcelDLLName = 'Excel_xp.dll';//1.90951
Type
    TFileNameString = WideString;//1.90951
    TExcelErrorString = WideString;//1.90952
    TExcelValueString = WideString;//1.90952



    EExcel_OLE=class(Exception);
    EExcel_OLE_Rejected=class(EExcel_OLE);
    EExcel_OLE_Rejected_ToWrite = class(EExcel_OLE_Rejected);

  procedure Excel_Finalize;external ExcelDLLName name 'Finalize';
procedure ResetExcelOLE(out TheError: TExcelErrorString);external 
ExcelDLLName;//1.90967

//1.90952 function OpenWorkBook(TheFileName : TFileNameString; out 
TheErrorIdx : integer) : integer;external ExcelDLLName;
//1.90952 function OpenWorkSheet(const TheWorkBook : integer; const 
TheSheetName : TFileNameString; out TheErrorIdx : integer) : 
integer;external ExcelDLLName;

//1.90952  procedure WriteToCell(const TheWorkSheet : integer; const 
TheRow, TheCol : integer; TheValue : String);external ExcelDLLName;
//1.90952 function WriteToRange(const TheSheetIndex : integer;TheRow, 
StartCol: integer; TheValues: array of variant; IsSkipIfNoChange: 
Boolean ) : integer;external ExcelDLLName;//used internally
procedure WriteToExcelRow(const TheSheetIndex: integer; TheRow, 
StartCol: integer; TheValues: array of Variant; out TheError: 
TExcelErrorString);external ExcelDLLName;//used internally

procedure WriteRow(const TheSheetIndex : integer;TheRow, StartCol: 
integer; TheValues: array of variant; var TheError : 
TExcelErrorString);external ExcelDLLName;//used internally
//1.90952 function GetCellValue(const TheWorkSheetIndex : integer; const 
TheRow, TheCol : integer) : Variant;external ExcelDLLName;


function GetCellVariant(const TheWorkSheetIndex : integer; const TheRow, 
TheCol : integer; var TheError : TExcelErrorString) : Variant;external 
ExcelDLLName;

function  IsRangeNull(const TheSheetIndex : integer;const TheRow, 
StartCol, TheRowCount, TheColCount : integer; var TheError : 
TExcelErrorString) : Boolean;external ExcelDLLName;


function GetExcelRange(const TheWorkSheetIndex: integer; const TheRow, 
TheCol, TheRowCount, TheColCount: integer; var TheError: 
TExcelErrorString): variant; external ExcelDLLName;

function OpenExcelWorkBook(TheFileName: TFileNameString; out TheError: 
TExcelErrorString): integer;external ExcelDLLName;
function OpenExcelWorkSheet(const TheWorkBook: integer; const 
TheSheetName: TFileNameString; out TheError: TExcelErrorString): 
integer;external ExcelDLLName;
procedure WriteToExcelRange(const TheSheetIndex: integer; TheRow, 
StartCol: integer; TheValues: Variant; out TheError: 
TExcelErrorString);external ExcelDLLName;

procedure ReOpenExcelWorkSheet(TheWorkSheetIndex : integer; out TheError 
: TExcelErrorString);external ExcelDLLName;//1.90966
procedure ReOpenExcelWorkBook(TheWorkBookIndex : integer; out TheError : 
TExcelErrorString);external ExcelDLLName;//1.90966
procedure SaveAllExcelWorkBooks(out TheError : 
TExcelErrorString);external ExcelDLLName;//1.90967
procedure SaveExcelWorkBook(TheBookIndex : integer; out TheError: 
TExcelErrorString);external ExcelDLLName;//1.91495




More information about the fpc-pascal mailing list