DLL Dateien...
Übersicht

![]() |
ChrisAttackBetreff: DLL Dateien... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe eine frage... (was auch sonst)
wie erstelle/benutze ich dll dateien? also ich erstelle sie in c++, das weiß ich. kennt jemand ein tut dazu? Also könnte ich eine .dll datei schreiben in der eine function zur textausgabe schreiben, die print_neu heißt, und diese dann in bb benutzen??? |
||
B3D
MSVC++ DX9SDK |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Tut gibt es im FAQ Bereich, es ist nix weiter als das Du eine Export-Compilerdirektive benutzt, und dem Linker sagst, das er eine DLL erzeugen soll. Eine neue Printalternative ist schwer zu realisieren. Mit BackBuffer() erhält man einen Pointer zu einer Blitzstructure die unteraderem Höhe, Breite und Farbtiefe enthält. Das wichtigste an ihr ist aber, das sie ebenfalls einen Pointer zum Videobuffer enthält. Diesem kann man extern in sehr hoher Geschwindigkeit schreiben und auslesen(schneller als es mit Write/ReadPixelFast geht) In ihm könnte man dann auch einen Text reinschreiben lassen. Einfacher wäre aber ersteinmal eine Rotine für das einzeichnen eines Rechteckes zu schreiben, da man hier nicht auch Schrioftart etc. achten muss. mfg olli Edit: Hier alle Infos dazu: BackBuffer(), FrontBuffer(), ImageBuffer(Image, Frame) und event. TextureBuffer(Texture, Frame) geben die Adresse einer Struktor zurück. Zitat: Adresse + 28 = Breite des Buffers in Pixel | 4 Byte Integer
Adresse + 32 = Höhe des Buffers in Pixel | 4 Byte Integer Adresse + 44 = Farbtiefe in Bit des Buffers | 4 Byte Integer Adresse + 76 = Pointer zum Videobuffer das ein Videographicarray ist der Breite * Höhe * Farbtiefe / 8 Byte groß ist Und wegen der DLL in C++: Code: [AUSKLAPPEN] #define BBDECL extern "C" __declspec(dllexport) #define BBCALL __stdcall BBDECL int BBCALL Addition(int A, int B); BBDECL int BBCALL Addition(int A, int B) { return A + B; } |
||
vertex.dreamfall.at | GitHub |
![]() |
ChrisAttack |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke... hab hier gefunden.... sieht ganz gut aus | ||
B3D
MSVC++ DX9SDK |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm... Kann man in C++ ganz normal auch auf den VideoRAM zugreifen? Ohne irgendwelche DX - Befehle, wie auf normales RAM? Das wäre ja lustig... | ||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
sicher geht es - hast du meine Alpha-DLL gesehen?
http://www.blitzbasic.com/tool...hp?tool=38 |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja kann man, die Adresse ist 0xA000 für EGA und CGA war es aber glaube
ich 0xB000. Um zu ermitteln, welche Auflösungen es gibt und diese auch zu setzen, benötigt man aber Inlineassembler. Für die kleinen Modis bis 640 * 480 * 256 Farben ist das noch sehr simpel mit Int 10h bei hören Auflösung muss man mit SVGA arbeiten: http://www.iconsoft.de/TUTORIAL/svga.htm (Für QB kann man aber natürlich in C++ umsetzen) mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
nö VRAM ist weiter hinten - diese A000 ist ein uraltes-pre-windows-ding - das ist nur gut, wenn man ein eigenes OS coden will oder in DOS codet... Ob A000 überhaupt auf VRAM liegt weiß ich nicht - ich denke einfach nur im RAM | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group