Eine DLL in BlitzBasic selber schreiben/exe to dll/DLL mit C
Übersicht BlitzBasic DLLs und Userlibs
SamuelBetreff: Eine DLL in BlitzBasic selber schreiben/exe to dll/DLL mit C |
Sa, Apr 23, 2011 20:00 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 |
Sa, Apr 23, 2011 20:22 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 |
Sa, Apr 23, 2011 21:12 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 |
Sa, Apr 23, 2011 21:13 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 |
Sa, Apr 23, 2011 21:18 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 |
Sa, Apr 23, 2011 22:54 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 |
Sa, Apr 23, 2011 23:10 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 mit bb ) |
||
EisbaerBetreff: DLLs für BlitzBasic |
So, Apr 24, 2011 9:05 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" |
So, Apr 24, 2011 12:47 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 |
Mo, Apr 25, 2011 17:04 Antworten mit Zitat |
|
---|---|---|
vielen dank
ich werds mir genauer anschauen (http://www.freebasic-portal.de/) |
||
Übersicht BlitzBasic DLLs und Userlibs
Powered by phpBB © 2001 - 2006, phpBB Group