Bardzo prosze Kogos o pomoc, szuaklem juz wszedzie i nigdzie nie moge niczego znalezc :-( nt tworzenia i uzywania wlasnej biblioteki dll w Borland C++ 3.1
Naprawde Prosze Was Pomozcie
z gory Dziekuje chocby za przeczytanie tego tematu
i czy choc ten 3.1 dziala poprawnie pod WinXP bo gdzies wyczytalem ze jest on 16 bitowy i jedynie pod Dosem i Win3.11 działa :( ?
On jest szesnasto bitowy i (z tego co wiem) to w tamtych czasach DLL-i nie było (zamiast DLL używano EXE). Lepiej więc wziąć się za coś z Win 32.
Popieram :-) .
no ok przerzucilem sie na Borlanda 5.02 ale nadal jestem zielony jakby ktos mogl mi jakis lekki tutorial podac to bylbym ogromnie wdzieczny
Zobacz na cyfbar.republika.pl tam jest kurs tworzenia DLL. Jeśli masz Petzolda "Programowanie Windows", tam też znjadziesz o DLL.
Muszę cię zmartwić co kompilator to jest inaczej
@ Borli
Budowa bibliotek dll
w Builder C++ wygląda trochę inaczej niż w Borland 5.02 (.01 , 00 )
ale niech będzie
przynajmniej kawałek , odpaliłem Borland 5.00 ( bo normalnie to BCB :-)) .
Otwierasz BC 5.02 .
Wybierasz :
File->New->Project . W oknie NEW TARGET
Wybierasz OPCJE :
'Dynamic Library' ,
Platform ->Win32 ,
Target Model ->GuI,
Frameworks -> ( usuwamy zaznaczone wszystko )
Libraries -> Dynamic
NASTEPNIE GUZIK Advanced
Zaznaczamy .C Node i usuwamy zaznaczone .rc i .def
NASTĘPNIE GUZIK Browse i zapisujemy projekt pod nazwą nap: testbib.ide w jakimś katalogu
OTWORZY się Widok drzewa
testbib.dll [.dll]
testbib.c [.c]
Klikasz na testbib.c i otwiera się edytor .
Wpisujesz tam :
#include <windows.h>
#include "testbib.h"
int WINAPI DllMain(HINSTANCE hInstance ,DWORD fdwReason ,PVOID pvReserved)
{
return 1 ;
}
int CALLBACK _export Funkcja_test_dll(void)
{
MessageBox(NULL,"xx","yy",MB_OK) ;
return 1 ;
}
//
W Katalogu w którym masz projekt musisz umieścić następujący plik w którym
zawarte są nazwy które biblioteka będzie zawierać :
#ifndef __TESTBIB_H
#define __TESTBIB_H
// Funkcje zawatre w bibliotece
#ifdef __cplusplus
extern "C"{
int CALLBACK _export Funkcja_test_dll(void) ;
}
#else
int CALLBACK _export Funkcja_test_dll(void) ;
#endif
#endif
Ja umieściłem tam jedną funkcję ' Funkcja_test_dll '
Z MENU Wybierasz Project -> Build All i masz gotową bibliotekę (jeśli poprawnie
wszystko wykonałeś :-)).
UWAGA . Z ostanie utworzony plik .dll oraz plik .lib
Aby sprawdzić działanie robimy program w postaci np :
#include <windows.h>
#include "testbib.h"
int WINAPI WinMain(HINSTANCE hInstance ,HINSTANCE hPrevinstance ,
PSTR szCmdDupa , int iCmdShow )
{
Funkcja_test_dll() ;
return 0 ;
}
Przed kompilacją trzeba umieścić plik z funkcjami biblioteki ""testbib.h" w katalogu
projektu aplikacji .ORAZ dołączyć do PROJEKTU plik .lib
Plik .dll musi znajdować się w katalogu Aplikacji lub systemowym aby ją uruchomić .
I Tyle.
To tylko najprostrzy przykład .
Proponuję jednak jakąś Książkę , bo temat jest o wiele bardziej rozwlekły .
:) czlowieku ratujesz mnie :) Dziekuje !
tylko ze sie dowiedzialem ze to ma byc robione w czyms darmowym a z tego co sie orientuje to 5.02 nie jest darmowy ?? ze stronki borlanda sciąglem cos takiego jak freecommandLinetools (Borland C++ Compiler 5.5 With Command Line Tools Version 5.5.1) wiec skoro byl na stronce to chyba jest darmowy ?? help
Możesz też znaleźć inne kompilatory , darmowe , były publikowane
wersje Borland C++ Builder personal na płytach w jakichś gazetach Komputer świat
czy coś :-( , na stronie Borlanda masz też Buildera C++ 6 do pobrania ,do zastosowań
niekomercyjnych.
W Command line tools to się nie baw bo się zarypiesz (czytaj mi by się nie chciało)
, wszystko trzeba robić na piechotę
i z wiersza poleceń lub plikami wsadowymi .Mozna go jeszcze podpiąć (bcc32) pod
edytory dla programistów :
http://pl.wikipedia.org/wiki/FreeCommandLineTools
http://personal.sirma.bg/Jogy/bcc55.html
Lub IDE relo , wygląda całkiem sympatycznie
,ale po co ?.Kiedyś bawiłem się pisząc nakładkę graficzną
na ten kompilator , ale to masło maślane - przy pomocy Builera C++ :-D , dla ćwiczenia .
(Relo też jest napisany w Builder ,4 )
Właściwie jeśli są dostępne darmowe kompilatory z graficznym IDE to nie ma sensu
się w to pakować .(To tylko moje zdanie )
No i jest jeszcze Dev C++ ...i jeszcze piękniejszy wxDev C++