Właśnie przebrnąłem przez kompilację pierwszej wtyczki i chciałbym się podzielić spostrzeżeniami z nowymi.

Dla użytkowników Microsoft Visual Studio .Net 2003 (MSVS.Net 2003), cały proces przedstawia sie następująco (dla innych środowisk proces ten będzie różnił się tylko miejscem położenia poszczególnych opcji).

Do skompilowania wtyczek bedziesz potrzebował:
1. Ściągnij najpierw SDK - http://www.konnekt.info/sdk.html
a) rozpakowujemy sdk w upatrzone miejsce
b ) CAŁĄ scieżkę która prowadzi do pliku "konnekt_sdk.chm" w rozpakowanym sdk oznaczam dalej jako [katalog_sdk]

2. Utwórz nowy projekt:
a) wybierz "Win32 Project"
b ) oknie kreatora wybierz w sekcji Application Settings przycisk "DLL" a dalej "empty project"
c) naciśnij finish

3. Konfiguracja projektu:
a) menu Project->Project Properties
a1) musisz dodac ścieżkę z plikami nagłówkowymi sdk Konnekta więc
- sekcja c/c++ -> general -> additional include directories -> podajemy nasz "[katalog_sdk]\headers\c++"
Uwaga : w pustym projekcie ta sekcja może być niewidoczna, zacznij wtedy od od punktu 4, a potem wykonaj 3.
a2) upewniamy sie ze:
- sekcja c/c++- > Code generation -> Runtime library - mamy ustawione na "Multi-thread DLL (MD)" lub "Multi-thread Debug DLL (MDd)" (wedle uznania, jeśli nie wiesz do czego to sluży wybierz pierwszą opcję)
- sekcja configuration properties -> general -> Configuration type - mamy ustawione na "dynamic library (.dll)"

4. Projekt wtyczki:
a) dodajemy plik *.cpp do projektu menu project -> add item wybieramy typ pliku "*.cpp" i dajemy nazwe jakas
b ) wklejamy tam zawartosc pliku jednej z przykladowych wtyczek z katalogu [katalog_sdk]/examples (mamy cztery do wyboru). Jeśli już wiesz, co robisz, a nie dopiero się uczysz, wybierz template'a (i zgłoś się do Milki po numer NET). W przeciwnym wypadku, zacznij od modyfikowania przykładów.
c) jako pierwszy include dodajemy przed WSZYSTKIMI include w kodzie "#include <stdarg.h>"
d) na koniec dodajemy do projektu jeszcze jeden plik .cpp a dokladnie to [katalog_sdk]\headers\c++\plug_defs.cpp

No i to wszystko. Teraz wybieramy polecenie build lub klikamy shift+ctrl+b i mamy gotowa wtyczkę! biggrin.gif Prawda ze to "proste" wink.gif

Na koniec warto przeczytać w dokumentacji [katalog_sdk]/konnekt_sdk.chm dzial "dodatkowe strony -> jak napisać wlasną wtyczkę", a najlepiej to cały ten dział smile.gif

Przygotowanie środowiska testującego

1. Stworzenie kopi konnekta
a) kopiujemy naszego zainstalowanego już konnekta w upatrzone miejsce
b ) tworzymy odzielny profil, który będzie nam potrzebny do testów
c) wyłączamy w nim wszystkie wtyczkie

2. Wersje developerskie konnekta
a) wersje developerskie konnekta, które można sciągnąć ze strony http://www.konnekt.info/sdk/347.html i które są polecane w dokumentacji niestety nie działają poprawnie
b ) żeby uzyskać zbliżone warunki pracy bez wersji developerskich, tworzymy skrót do skopiowanego konnekta a w nim (element docelowy) dodajemy dodatkowy parametr uruchamiania konnekta " -nocatch" (bez cydzyslowia). Uzyskamy dzięki temu, to iż konnekt nie będzie wysyłał raportów o błędach krytycznych

Przy kompilacji dostaję masę warningów, ale wszystko działa - o co chodzi?

1. Warningi typu
CODE
warning C4311: 'type cast' : pointer truncation from 'const char *' to 'int'
w plikach nagłówkowych Konnekta
QUOTE(withux)
const char* jest właściwie intem ale reprezentuje 1 bajtowe segmenty pamięci, int natomiast jest 4 bajtowy, ale wskaźniki reprezentuje się za pomocą 4 bajtowych intów więc to na jedno wychodzi... możesz to olać lub zrobić
CODE
#pragma warning(disable,4311-2)

To jest jedyne, jak narazie rozwiązanie. Nie należy jednak nadużywać wyłączania worningów. Smiało jednak można z nich korzystać w plikach dostarczonych z SDK Konnekta, gdyż tam przecież nic nie będziemy zmieniać.
Withux myli się. Nie wiem dlaczego przy projektowaniu Konnekta w ogóle pozwolono na takie rzutowanie. Const char* wcale nie jest równy int. Mogę się tylko domyślać, że z tego powodu K nie chce działać pod linuxami.

2. Warningi typu
CODE
warning C4060: switch statement contains no 'case' or 'default' label
Kompilujesz goły plik template'a - czego się spodziewałeś? Uzupełnij wskazane przez kompilator switch'e tongue.gif

Szukasz więcej przykładów?
Zajrzyj tu: http://k-api.prv.pl/pomoce.html. Na stronie tej znajdziesz artykuły dla początkujących oraz średnio zaawansowanych.