Seite 1 von 1
CreateWindow_() is not a function, an array or...
Verfasst: 18.11.2004 23:05
von PBZecke
Hallo!
mein PB V.3.92 kennt "CreateWindow_()" nicht: "is not a function, an array or...
CreateWindowEx _() macht keine Probleme. Kann das jemand bestätigen, oder macht meine PB-Installation Probleme?
Verfasst: 18.11.2004 23:20
von GPI
normal. Nimm CreateWindowEx_()
(Ist anscheinend eine gewollte einschränkung)
Verfasst: 18.11.2004 23:29
von PBZecke
Werd ich wohl machen müssen, aber für eine normale Einschränkung halte ich das nicht, ist wohl eher ein Bug.
Verfasst: 19.11.2004 09:05
von wichtel
seid dem neuen Linker gibt es einige API Funktionen die nicht mehr bekannt sind.
Damit habe ich mich immer noch nicht abgefunden und kann den Sinn nicht erkennen.
Falls es einen geben sollte würde ich in gerne kennen lernen.
Man kommt zwar mit dem direkten Öffnen der DLL daran vorbei, nervt aber. (und immer für bestimmen code extra noch eine alte Version von PB vorhalten ist auch nicht so praktikabel)
Gruß
Michael
Verfasst: 19.11.2004 09:28
von Danilo
wichtel hat geschrieben:seid dem neuen Linker gibt es einige API Funktionen die nicht mehr bekannt sind.
Damit habe ich mich immer noch nicht abgefunden und kann den Sinn nicht erkennen.
Was hat denn Fred dazu gesagt, als Du das gemeldet hast?
Ich glaube kaum das es Absicht war, also wird das bestimmt
wieder hinzugefügt, wenn man die entpr. Leute informiert
und mal nachfragt was da los ist.
Verfasst: 19.11.2004 09:45
von wichtel
Ich habe das zwar auch festgestellt, war aber nicht der Erste. Dazu gab es schon einige Threads im Forum (auch english) aber eine eindeutige Antwort habe ich nicht gefunden. Evtl. habe ich da was übersehen.
Mir ist es hier aufgefallen:
Code: Alles auswählen
Structure envstruct
name.s
value.s
EndStructure
NewList env.envstruct()
Procedure.s myGetEnv(name.s)
value.s=Space(256)
size.l=Len(value)
GetEnvironmentVariable_(@name, @value, @size)
ProcedureReturn(value)
EndProcedure
Procedure.l myListEnv()
ret$=""
envcount.l=0
LibKernel.l=OpenLibrary(#PB_Any,"kernel32.dll")
If LibKernel=0
MessageRequester("DLL error","Kann kernel32.dll nicht öffnen")
ProcedureReturn 0
EndIf
envblock.l=CallFunction(LibKernel,"GetEnvironmentStringsA")
;vor 3.91 mit:
;envblock.l=GetEnvironmentStrings_()
ClearList(env())
Repeat
ret$=PeekS(envblock)
If ret$<>"" And Left(ret$,1)<>"=" And Left(ret$,1)<>":"
AddElement(env())
env()\name=StringField(ret$,1,"=")
env()\value=StringField(ret$,2,"=")
EndIf
envblock+Len(ret$)+1
Until ret$=""
CloseLibrary(LibKernel)
ProcedureReturn CountList(env())
EndProcedure
Debug myGetEnv("windir")
Debug myListEnv()
ForEach env()
Debug env()\name +" = "+env()\value
Next