[WinAPI] GetProcessImageFileName(...)

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

[WinAPI] GetProcessImageFileName(...)

Beitrag von Leonhard »

Wie kann man die Funktion GetProcessImageFileName(...) in PureBasic verwenden?

Ich bekomme die einfach nicht ins Programm rein.

Ich zeig hier mal meine Versuche, die Funktion zu integrieren:

Versuch 1:

Code: Alles auswählen

Import "Psapi.lib"
  CompilerIf #PB_Compiler_Unicode
  GetProcessImageFileName.l(hProcess.l, *lpImageFileName, nSize.l) As "_GetProcessImageFileNameW@12"
  CompilerElse
  GetProcessImageFileName.l(hProcess.l, *lpImageFileName, nSize.l) As "_GetProcessImageFileNameA@12"
  CompilerEndIf
EndImport

Define String$ = Space(255)
GetProcessImageFileName(0, @String$, Len(String$))
PureBasic-ERROR:
PureBasic - Linker error
POLINK: error: Unresolved external symbol '_GetProcessImageFileNameW'.
POLINK: fatal error: 1 unresolved external(s).
Ich habs auch mit ImportC und ohne As versucht.

Versuch 2:

Code: Alles auswählen

OpenLibrary(1, "Psapi.dll")

Debug GetFunction(1, "GetProcessImageFileName")
Debug gibt 0 zurück.

Ich habe mit einem Programm in der DLL nachgeschalgen, das mir sagt, das beide Funktionen exsistieren:
Ordinal | Adresse | Name
-----------+------------+--------------------------
0x00000013 | 0x76BB3DE5 | GetProcessImageFileNameA
0x00000014 | 0x76BB3D57 | GetProcessImageFileNameW
Wie bekomm ich die Funktion nun eingeladen?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Erster Versuch kann nicht gehen, da es in der Lib nicht vorhanden ist, evtl
hilft eine neuere Version.

Zweiter Versuch kann nicht gehen, da fehlt das A oder W!!!

Ansonsten ist mind. WinXP erforderlich
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

ts-soft hat geschrieben:Erster Versuch kann nicht gehen, da es in der Lib nicht vorhanden ist, evtl
hilft eine neuere Version.
Die Funktion nicht, aber die Lib ist vorhanden!
ts-soft hat geschrieben:Zweiter Versuch kann nicht gehen, da fehlt das A oder W!!!
Oh, das hab ich ganz übersehen. Danke!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Die Funktion nicht, aber die Lib ist vorhanden!
Die enthält aber nur die Funktionen, die es seit Win95 gibt, XP Funktionen
sind nicht enthalten, dafür brauchste eine neuere Version oder Du erstellst
Dir eine Mithilfe von "polib.exe" oder "ar.exe" o. ä.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten