UnDecorateSymbolName_ und Unicode

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

UnDecorateSymbolName_ und Unicode

Beitrag von jpd »

Hallo,

ich würde gerne diese procedure in Unicode ausführen,
leider wird immer nur der erste zeichen des name angezeigt.

kann jemand bitte helfen diese in unicode modus am laufen zu kriegen?

Vielen Dank
jpd


Code: Alles auswählen

Procedure LibFuncName(dll_file.s)

  Protected Line.l = 0, OpenLib.l
  OpenLib=OpenLibrary(#PB_Any,dll_file) 
  If OpenLib
    If ExamineLibraryFunctions(OpenLib) <>0
      Result = CountLibraryFunctions(OpenLib)
      If  result
        While NextLibraryFunction() 
          decoratedname$=LibraryFunctionName() 
          undecoratedname$=Space(256)
          UnDecorateSymbolName_(decoratedname$,undecoratedname$,256 ,$1000) 
          Debug undecoratedname$
        Wend 
      EndIf
    Else
      Debug "Cannot Examine DLL!"
    EndIf
    CloseLibrary(OpenLib)
  EndIf 
   

EndProcedure


LibFuncName("C:\Windows\System32\wsock32.DLL")


PB 5.10 Windows 7 x64
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 »

Code: Alles auswählen

Prototype UnDecorateSymbolName(decoratedname.s, undecoratedname.s, length.l, flags.l)
OpenLibrary(0, "DbgHelp.dll")
CompilerIf #PB_Compiler_Unicode
  Global UnDecorateSymbolName.UnDecorateSymbolName = GetFunction(0, "UnDecorateSymbolNameW")
CompilerElse
  Global UnDecorateSymbolName.UnDecorateSymbolName = GetFunction(0, "UnDecorateSymbolName")
CompilerEndIf

Procedure LibFuncName(dll_file.s)

  Protected Line.l = 0, OpenLib.l
  OpenLib=OpenLibrary(#PB_Any,dll_file)
  If OpenLib
    If ExamineLibraryFunctions(OpenLib) <>0
      Result = CountLibraryFunctions(OpenLib)
      If  result
        While NextLibraryFunction()
          decoratedname$=LibraryFunctionName()
          undecoratedname$=Space(256)
          UnDecorateSymbolName(decoratedname$,undecoratedname$,256 ,$1000)
          Debug undecoratedname$
        Wend
      EndIf
    Else
      Debug "Cannot Examine DLL!"
    EndIf
    CloseLibrary(OpenLib)
  EndIf
   

EndProcedure


LibFuncName("C:\Windows\System32\wsock32.DLL")

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
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hallo Ts-soft,

Vielen Dank!

müsste die UnDecorateSymbolName_(

nicht beide funktionen berücksichtigen?

kann überprüft werde was PB für eine xxx_ funktion importiert?

Danke
jpd
PB 5.10 Windows 7 x64
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 »

jpd hat geschrieben: müsste die UnDecorateSymbolName_(

nicht beide funktionen berücksichtigen?
Ich denke mal, das wurde nicht autom. berücksichtigt, weil die ANSI Version
kein A am Ende hat :mrgreen:
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
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

klingt logisch!

Danke.
PB 5.10 Windows 7 x64
Antworten