ist das eigentlich möglich?
Ich wollte über ein externes Programm die 3D-Funktionen über eine PB gernierte DLL aktivieren. da ich den Windows - Handle über GetActiveWindow() abfragen und als Parameter an die DLL übergeben könnte. Leider hakt es in dem Beispiel. Ich nehme an, das liegt an meinem derzeitigen Wissensstand. Falls es jedoch irgendwie funzen könnte, lasst es mich bitte wissen.
Als erstes Create_DLL_3D.PB
Code: Alles auswählen
; Create_DLL_3D
ProcedureDLL _3DInit()
If OpenLibrary(0, #PB_Compiler_Home+"\Compilers\Engine3D.dll")
If InitEngine3D()
InitMouse()
InitSprite()
InitKeyboard()
ProcedureReturn #True
EndIf
EndIf
ProcedureReturn #False
EndProcedure
ProcedureDLL _3DWindow(nWindow, x, y,Width, Height)
OpenWindowedScreen(nWindow, x, y, Width, Height, #False, 0, 0 )
EndProcedure
Code: Alles auswählen
; Check_DLL_3D
#Library = 0
#WindowWidth = 390
#WindowHeight = 350
Prototype PT_3DInit()
Prototype PT_3DWindow(nWindow, x, y, Width, Height)
If OpenLibrary(#Library, "MyDLL.dll")
F_3DInit.PT_3DInit = GetFunction(#Library,"_3DInit")
F_3DWindow.PT_3DWindow = GetFunction(#Library,"_3DWindow")
Else
MessageRequester("Error","Cannot load library")
End
EndIf
l3DInit = F_3DInit()
OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, "DLL 3DWindow Demonstration", #PB_Window_MinimizeGadget)
nWindow = WindowID(0)
If nWindow <> 0
If l3DInit
MessageRequester("l3DInit","Init scheint OK")
F_3DWindow(nWindow,20,20,20,20)
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
CloseLibrary(0)
MessageRequester("Beenden","Session beendet")
End
Gruß Skiller

