Eine DLL in BlitzBasic selber schreiben/exe to dll/DLL mit C
Übersicht

![]() |
SamuelBetreff: Eine DLL in BlitzBasic selber schreiben/exe to dll/DLL mit C |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen
Ist es irgendwie möglich in BlitzBasic(BB3D/B+) eine DLL selber zu schreiben/erstellen? Wenn "ja" dann wie? Wenn "nein" gibt es dann irgendein Programm/Tool zum ohne grosse Vorkenntnisse eine DLL zu erstellen? Oder wenn das nicht möglich ist(ok alles ist möglich). Hat jemand einen Beispiel-Code für C/C++ oder so etwas in der Art. Und mit welchem Compiler kann ich das machen? Da ich nicht viel im Forum/Google gefunden habe hoffe ich jetzt hier auf eine brauchbare Antwort. Vielen Dank im Voraus ![]() Gruss Samuel |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier geht's los:
http://blitzbasic.com/sdkspecs..._specs.txt Und da ein Beispiel: http://blitzbasic.com/sdkspecs...s_demo.zip MFG EDIT: Das Beispiel dürfte VisualC++ sein. EDIT2: Ich glaube ich habe dich falsch verstanden... Die Links zeigen dir, wie du eine DLL für BB schreiben kannst. In BB ist das nicht möglich. Wenn du eine allgemiene DLL schreiben möchtest gibts dazu in VisualStudio eine Vorlage oder schau mal in der msdn (http://www.msdn.com) rein. |
||
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK hätte ja sein können das es mit BlitzBasic auch irgendwie geht...
Mit den beiden Links kann ich nicht viel anfangen(danke trotzdem) ich checks nicht ![]() http://www.msdn.com -> schau ich mir mal genauere an |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit BlitzMax ist es möglich DLL's zu erstellen. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzMax habe ich leider nicht(hab ich auch nicht vor mir anzueignen da ich vom arbeiten aus sowieso assebbler/c/c++ lernen muss - aber erst in 2 jahren ![]() aber ein kollege von mir hat BlitzMax vielleicht kann er etwas für mich proggen.... ![]() |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man muss keine Angst vor C++ haben. Es ist gewöhnungsbedürftig, es ist eigen. Ich bin da kein Experte drin, aber mit einem guten Buch zur Seite versteht man was Sache ist. Und der Rest kommt wohl mit der Übung.
MFG |
||
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja eben hab leider zuwenig Zeit ![]() aber da ich dann vom arbeiten aus Microcontroller programmieren muss - werde ich das dann sowieso lernen(ich habe einfach gedacht so als überbrückung ![]() |
||
EisbaerBetreff: DLLs für BlitzBasic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du DLLs für BlitzBasic erstellen willst,
gibt es eine Freeware die dir das ermöglicht. Syntax ist QBasic Basierend, und somit leicht zu erlernen, wenn man sich mit BlitzBasic auskennt. http://www.freebasic.net (Official Developer Seite) http://www.freebasic-portal.de (Deutsches Portal) http://forum.qbasic.at (Das Deutsche QuickBasic & FreeBasic Forum) Grüße Eisbaer |
||
Eigene Webseite:
http://www.eisbaer-studios.de |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder man nimmt sich die zeit die syntax von cpp/c zu lernen und holt sich gcc/mingwgcc.
Denn dann kann solche Späße machen: Code: [AUSKLAPPEN] // XaymarHelper.cpp : Defines the entry point for the DLL application.
// #include <windows.h> #define DLL_EXPORT extern "C" _declspec(dllexport) #define DLL_IMPORT extern "C" _declspec(dllimport) #define DLL_CALL _stdcall WNDPROC gBlitzProc; HWND gBlitzWindow; int iClose; int MainMonitorX, MainMonitorY; int MainMonitorW, MainMonitorH; DLL_EXPORT int DLL_CALL InstallCloseHandler(char *BlitzWindowName); DLL_EXPORT int DLL_CALL GetWindowClose(); DLL_EXPORT int DLL_CALL UnInstallCloseHandler(); DLL_EXPORT void DLL_CALL GetMainMonitorSize(int Bank); DLL_EXPORT void DLL_CALL CursorBounds(int X, int Y, int W, int H); BOOL APIENTRY DllMain( HANDLE hModule, DWORD fdwReason, LPVOID lpReserved ) { return TRUE; } //Window Event Handler: Close LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_CLOSE: iClose = iClose+1; return true; default: return CallWindowProc(gBlitzProc, hwnd, uMsg, wParam, lParam); } return 0; } DLL_EXPORT int DLL_CALL GetWindowClose() { int RetVal;RetVal = iClose; iClose = iClose-1; if (iClose < 0) iClose = 0; return RetVal; } DLL_EXPORT int DLL_CALL InstallCloseHandler(char *BlitzWindowName) { gBlitzWindow = FindWindow("Blitz Runtime Class", BlitzWindowName); if(!gBlitzWindow) return false; gBlitzProc = (WNDPROC)SetWindowLong(gBlitzWindow, GWL_WNDPROC, (LONG)WindowProc); return true; } DLL_EXPORT int DLL_CALL UnInstallCloseHandler() { SetWindowLong(gBlitzWindow, GWL_WNDPROC, (LONG)gBlitzProc); return true; } //Get Main Monitor Size BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData) { MONITORINFO *moninfo = new MONITORINFO; moninfo->cbSize = sizeof( MONITORINFO ); GetMonitorInfo(hMonitor, moninfo); if (moninfo->dwFlags == 1) { MainMonitorX = moninfo->rcMonitor.left; MainMonitorY = moninfo->rcMonitor.top; MainMonitorW = moninfo->rcMonitor.right; MainMonitorH = moninfo->rcMonitor.bottom; } } DLL_EXPORT void DLL_CALL GetMainMonitorSize(int Bank) { EnumDisplayMonitors(NULL,NULL,MonitorEnumProc,0); *(int*)(Bank+0) = MainMonitorX; *(int*)(Bank+4) = MainMonitorY; *(int*)(Bank+8) = MainMonitorW; *(int*)(Bank+12) = MainMonitorH; } //Mouse Stuff DLL_EXPORT void DLL_CALL CursorBounds(int X, int Y, int W, int H) { RECT Area; Area.left = X; Area.top = Y; Area.right = X+W; Area.bottom = Y+H; ClipCursor(&Area); } |
||
Warbseite |
![]() |
Samuel |
![]() Antworten mit Zitat ![]() |
---|---|---|
vielen dank
ich werds mir genauer anschauen (http://www.freebasic-portal.de/) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group