Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak z borlandem?
Konnekt | Forum > Developerzy > Tworzenie wtyczek
Zakrn
Chciałem się wreszcie zacząć uczyć porządnie c++ i pomyślałem sobie, że oczywiście wtyczki do konnekta, to dobry tutorial smile.gif Ale pojawił się mały problem: używam mianowicie borland c++ builderx i podczas kompilacji wywala mi błędy w nagłówkach:
QUOTE
\"plug.h\": E2293 ) expected at line 238
\"plug.h\": E2303 Type name expected at line 310
\"ui.h\": E2092 Storage class 'typedef' is not allowed here at line 125
\"plug_func.h\": E2303 Type name expected at line 129
\"plug_func.h\": E2303 Type name expected at line 131

Byłbym bardzo wdzięczny, jeśli ktoś mógłby mi pomóc w poradzeniu sobie z nimi.
Aule
Podaj te błędne linie i błędy, a nie tylko błędy.
Zakrn
Proszę bardzo:
QUOTE
plug.h l. 238:
virtual void * __stdcall malloc(size_t size)=0;
l. 310:
void IMLOG_(enDebugLevel level , const char *format, va_list p);
ui.h fragment kodu:
typedef struct tIconParams {
    short size;
    char bits;
}; //Linia 125
plug_func.h l. 129
bool GetExtParam(const char * ext , const char * name , char * valueBuff , size_t buffSize);
plug_func.h l. 131
bool SetExtParam(const char * ext , const char * name , const char * value , char * extBuff , size_t buffSize);
Aule
Masz BuilderX'a z PCWK?? Może powiesz mi jak nastawić kompilator z VS6, albo nawet 7.1?? Bo nie mogę tego znaleźć.
Zakrn
Tak, tego buildera i szczerze jestem zawiedziony - to jest wersja personal i nie jest do końca taki jak bym chciał :? .
Co do podłączenia tego kompilatora, nigdy nie miałem do czynienia z żadnym vs, zawsze był to albo któryś borland albo devcpp, ale wydaje mi się, że można go podpiąć w menu Tools -> Build tools.
Gdy pytałem hao o te błędy, to powiedział, że sdk było przygotowywane właśnie pod vs, więc pewnie gdyby zmienić kompilator, to nie miałbym problemów, ale nie mam skąd go wziąć. Może ktoś posiada jakiś link do visual studio .net, żebym sobie mógł ściągnąć?
Aule
Poszukaj lepiej kopilatora na net'cie. BuilderX korzysta z jakichś plików .toolset i mając sam kompilator duzo nie zdziałasz.
hao
Ogólnie już widzę... Nagłówki buildera nie mają zdefiniowanych odpowiednich typów... Nie wiem skąd, ale musisz wytrzasnąć jakoś nowsze, lub dowiedzieć się jakie są ich odpowiedniki w Twoim builderze i zrobić odpowiednie define'y... Chodzi o size_t i va_list .



CODE
 typedef struct tIconParams {
   short size;
   char bits;
 };

Spróbuj zmienić na
CODE
 typedef struct {
   short size;
   char bits;
 } tIconParams;
Aule
Mam pytanko. Poprawnie ci include'uje plik <string> bo mi go nie includuje, tzn. pisze, że jest, ale nie ma funkci z niego.
EJ Hao, a co by sie stało jakbym podmnienił nagłówki z BuilderX,a z tymi z VS6??

JA mam takie błędy:
CODE
"plug_defs.cpp": E2356 Type mismatch in redeclaration of '__stdcall cCtrl::IMessage(sIMessage_base *)' at line 57
"plug.h": E2344 Earlier declaration of '__stdcall cCtrl::IMessage(sIMessage_base *)' at line 152
hao
Najpewniej miałbyś jeszcze więcej błędów niż masz w tej chwili...
Aule
Probowałem i masz pełną rację. Ale skąd wziaść sprintf(), bo pisze że f-cja nie istniej i f-cja min() tak samo zresztą.
Zakrn
QUOTE
Poprawnie ci include'uje plik <string> bo mi go nie includuje, tzn. pisze, że jest, ale nie ma funkci z niego.

Tak, mam funkcje z niego

Jeśli chodzi o wcześniejsze błędy poradziłem sobie - brakowało mi po prostu plików nagłówkowych w definicji :oops:
Teraz mam jednak taki problem:
QUOTE
Error: Unresolved external 'Plug_Init(int, int)' referenced from C:\DOCUMENTS AND SETTINGS\ZAKRN\CBPROJECT\KONNDLL\WINDOWS\DEBUG_BUILD\UNTITLED.OBJ
Error: Unresolved external 'Plug_Deinit(int, int)' referenced from C:\DOCUMENTS AND SETTINGS\ZAKRN\CBPROJECT\KONNDLL\WINDOWS\DEBUG_BUILD\UNTITLED.OBJ
Error: Unresolved external '_Ctrl' referenced from C:\DOCUMENTS AND SETTINGS\ZAKRN\CBPROJECT\KONNDLL\WINDOWS\DEBUG_BUILD\UNTITLED.OBJ

Jako, że w końcu się zezłościłem i powróciłem do bardziej lubianego przeze mnie programu, jakim jest dev-cpp, a on zwrócił na tym samym zestawie plików:
QUOTE
In file included from D:/Dev/Dev-Cpp/include/konnekt/plug_export.h:30, from D:/Dev/Cpp projects/template.cpp:16:
D:/Dev/Dev-Cpp/include/konnekt/plug.h: In constructor
  `sUIActionInfo::sUIActionInfo(int, int, int, int, char*, int, short int,
  short int, int, int)':
D:/Dev/Dev-Cpp/include/konnekt/plug.h:1344: warning: assignment of negative value `-1' to `unsigned int'
D:/Dev/Dev-Cpp/include/konnekt/plug.h:1344: warning: argument of negative value `-1' to `unsigned int'
D:/Dev/Dev-Cpp/include/konnekt/plug.h: In constructor `cMessage::cMessage()':
D:/Dev/Dev-Cpp/include/konnekt/plug.h:1960: warning: passing negative value `-2 ' for default argument 3 of `sUIAction::sUIAction(unsigned int, unsigned int, unsigned int)'
D:/Dev/Dev-Cpp/include/konnekt/plug.h:1960: warning: argument of negative value `-2' to `unsigned int'
In file included from D:/Dev/Cpp projects/template.cpp:18:
D:/Dev/Cpp projects/template.cpp: At global scope:
D:/Dev/Cpp projects/template.cpp:69: ISO C++ forbids declaration of `ActionProc  ' with no type

A jako, że się za mało znam, żeby coś kombinować, to nic nie kombinuję... Tylko zastanawiają mnie te wszystkie unsigned int z wartościami ujemnymi... Dlaczego tak jest w nagłówkach?
kox
Jeśli chodzi o Buildera to wersja 6 działała bez problemu.. coś ta wersja X udziwniona za bardzo.
UNK
z tego co pamietam po napisaniu wtyczki w builderze nie za bardzo chciala u wszystkich chodzic, ja zaczynalem od buildera i tak bylo nie wiem czym to bylo spowodowane :/
Aule
Na builder 6 to robiłeś? BuilderX w pełnej wersji ma nawet kompilator z VC++, więc w pełnej problemów by nie robił, ale w piśmie jest personal, czyli ma tylko gcc i borlanda :cry:
12q12
Nie wiem co robię źle. Próbuje skompilować przykładową wtyczkę. Używam do tego Visual Studio C++ 7.1

Robię to w następujący sposób:
1. ściągnełem sdk .106
2. utworzyłem w visual studio puste solution a następnie stworzyłem pusty projekt Empty Project (.NET).
3. Następnie do projektu podołączałem pliki:
w SourceFiles: templete.cpp, simple.cpp, msgs.cpp, actcfg.cpp
w HeaderFiles dodałem zaś wszystkie pliki nagłówkowe
4. Zmieniłem też Code Generation na Multi-Threaded DLL (/MD)

nie mogę zbudować projektu, gdyż mam następujące błędy:
CODE
Compiling...
plug_defs.cpp
plug_defs.cpp(332) : warning C4101: 'ec' : unreferenced local variable
template.cpp
c:\Documents and Settings\Slawek\Moje dokumenty\Visual Studio Projects\Wtyczka1\Wtyczka1\konnekt\plug.h(303) : error C2061: syntax error : identifier 'va_list'
template.cpp(61) : warning C4060: switch statement contains no 'case' or 'default' labels
template.cpp(76) : warning C4060: switch statement contains no 'case' or 'default' labels
simple.cpp
c:\Documents and Settings\Slawek\Moje dokumenty\Visual Studio Projects\Wtyczka1\Wtyczka1\konnekt\plug.h(303) : error C2061: syntax error : identifier 'va_list'
simple.cpp(34) : error C2143: syntax error : missing ';' before ':'
simple.cpp(34) : error C2143: syntax error : missing ';' before ':'
simple.cpp(39) : error C2065: 'UIHandle' : undeclared identifier
Generating Code...


No i co teraz?
Może ktoś mi pomoc?

Pozdrawiam
winthux
Wszystko by było dobrze, gdyby hao trzymał się standardu ISO c++:P

Ale przy programowaniu w windows trzymać się iso jest bardzo trudno....
Aule
W source powinny być 2 pliki .cpp : ten który patrzysz i plug_defs.cpp . Wywal inne pliki.
12q12
Dzięki Aule. Faktycznie pomogło, muszą być tylko dwa pliki.
hao
Nie dziwne, nie da się w jednym projekcie zawrzeć wszystkich istniejących przykładów smile.gif

QUOTE
Wszystko by było dobrze, gdyby hao trzymał się standardu ISO c++tongue.gif

Ale przy programowaniu w windows trzymać się iso jest bardzo trudno...


Aktualne nagłówki są paskudne... Pierwotny plan zakładał dużą portowalność do innych języków, ale najnowsze dodane nagłówki (jeszcze publicznie niedostępne) to już sam miód i orzeszki wink.gif
Bora
A jakie rozwiązanie polecacie żeby poradzić sobie z
QUOTE
konnekt\plug.h(326) : error C2061: syntax error : identifier 'va_list'
jest to linijka:
void IMLOG_(enDebugLevel level , const char *format, va_list p);

Dodam że używam VS 7.1 i ustawiania podobnie jak 12q12
winthux
zaincluduj gdzieś przed plug.h plik <stdio.h> and <stdarg.h> w którym są definicje dla tego typu. w msdn masz szczegółowo opisane co i jak...
splesh
Wszystko by było fajnie, tylko nie został (chyba) rozwiązany problem borlanda.
Nawet gdy usiłowałem skompilować kTransfer pod BCB6 wyskoczyła mi masa błędów (np. w ui.h), nie mówiąc już nic o samplach z SDK. Coś jest nie tak...
KoSiarzPL
Z tego co pamietam kTransfer sie nie kompilowal bo brakowało mu paru rzeczy (w źródłąch). Zacznij od czegoś prostego. Na pewno jeden przykład (simple.cpp) zawiera bład, zgłaszałem to Hao ale tego nie poprawił :/.
Skompiluj "msgs.cpp", on napewno działa. Tylko pamiętaj o dodaniu
CODE
#include <stdarg.h>

Jako pierwszy. Zresztą przeczytaj mój temat w tym dziale "Twoja pierwsza kompilacja". Jest przyklejony.
Na koniec. Nie uważam za dobry pomysł pisaina wtyczek dla K w orlandzie. Może kiedyś (przy najbliższym uaktualnieniu API). Żeby nie było, nigdy nie pisałem w borlandzie i jeśli ktoś myśli inaczej niech mnie wyprowadzi z błędu.

[edit]
lsh, ty to masz zdrowie. Przeglądać wszystkie posty i poprawiać błędy (nawet te drobniejsze). Ale chwała ci za to wink.gif Z ciekawości ty masz jakiś skrypt, macro czy co?
Olórin
AFAIR z Borlandem były same problemy. Przy tym samym kodzie pod MSVS działało dobrze.
splesh
No, tylko że wiecie. Jest jakiś darmowy Visual Studio ? (Chociaż do celów niekomercyjnych?). Bo express jest niezwykle okrojony i średnio mu ufam. Wtedy z chęcią bym się przesiadł, tylko dla konnekta, na ms vs.
KoSiarzPL
Co ty wygadujesz? W czym jest okrojony? Ściągaj, instaluj i mów czego tam nie ma.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.