diff options
author | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2019-06-14 22:40:11 +0000 |
---|---|---|
committer | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2019-06-14 22:40:11 +0000 |
commit | 1b94723f08e276dc5e3df31216df6574049014ec (patch) | |
tree | a3d14c777694ea8fbeb29aa6ecfc4f9cb8f0c93a | |
parent | 5dfffcda5167f65ffd1c97dcfa7dd1bd77f6ccbb (diff) | |
download | fpc-1b94723f08e276dc5e3df31216df6574049014ec.tar.gz |
+ register a win16 dll scanner. Not functional yet.
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42230 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | compiler/systems/t_win16.pas | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/compiler/systems/t_win16.pas b/compiler/systems/t_win16.pas index 0ff80961be..93c1fa2743 100644 --- a/compiler/systems/t_win16.pas +++ b/compiler/systems/t_win16.pas @@ -78,6 +78,16 @@ implementation constructor create;override; end; + { TDLLScannerWin16 } + + TDLLScannerWin16=class(tDLLScanner) + private + importfound : boolean; +{ procedure CheckDLLFunc(const dllname,funcname:string);} + public + function Scan(const binname:string):boolean;override; + end; + {**************************************************************************** TImportLibWin16 ****************************************************************************} @@ -397,6 +407,31 @@ begin CObjInput:=TOmfObjInput; end; +{**************************************************************************** + TDLLScannerWin16 +****************************************************************************} + +function TDLLScannerWin16.Scan(const binname: string): boolean; +var + hs, + dllname : TCmdStr; +begin + result:=false; + { is there already an import library the we will use that one } + if FindLibraryFile(binname,target_info.staticClibprefix,target_info.staticClibext,hs) then + exit; + { check if we can find the dll } + hs:=binname; + if ExtractFileExt(hs)='' then + hs:=ChangeFileExt(hs,target_info.sharedlibext); + if not FindDll(hs,dllname) then + exit; + importfound:=false; + {todo: ReadDLLImports(dllname,@CheckDLLFunc);} + if importfound then + current_module.dllscannerinputlist.Pack; + result:=importfound; +end; {***************************************************************************** Initialize @@ -407,5 +442,6 @@ initialization RegisterLinker(ld_win16,TExternalLinkerWin16WLink); RegisterImport(system_i8086_win16,TImportLibWin16); RegisterExport(system_i8086_win16,TExportLibWin16); + RegisterDLLScanner(system_i8086_win16,TDLLScannerWin16); RegisterTarget(system_i8086_win16_info); end. |