Fragen zu MingW und VisualC++ Libraries und Win32API



  • Hallo zusammen!

    Bisher benutze ich ausschliesslich VisualC++ und entwickel gerade eine Library, die auf die Win32API zugreift. Diese Library will ich dann auch kostenlos anbieten, jedoch nicht als OpenSource. Das erstmal als Hintergrund.

    Diese Library erstelle ich zur Zeit mit VC++, habe also meine .lib-Datei und die Headers. Jetzt will ich aber gerne auch die MingW-Benutzer erreichen. Weiß jemand, ob diese meine Library problemlos in ihren MingW-Projekten mitlinken können? Oder muß ich mir MingW installieren und dort einmal eine .lib erstellen?

    Dann habe ich noch eine andere Frage, falls ich doch MingW benutzen muß: auf der MingW-Homepage habe ich gelesen, das es einen Win32API-Port gibt, der unter der PublicDomain ist. Sind die Win32API-Aufrufe identisch mit denen von MS? Also, gibt es auch einen HINSTANCE, ein CreateWindowEx usw.? Oder heißen die Funktionen dort anders, erfüllen aber den selben Zweck?

    Gruß
    Artchi



  • Artchi schrieb:

    Oder muß ich mir MingW installieren und dort einmal eine .lib erstellen?

    Afaik genauso. (dort sind das übrigens .a Dateien)

    Artchi schrieb:

    Sind die Win32API-Aufrufe identisch mit denen von MS? Also, gibt es auch einen HINSTANCE, ein CreateWindowEx usw.?

    Das würde ich doch stark vermuten, wäre ja auch sonst irgendwie Blödsinn. Immerhin ist DIE WinAPI Schnittstelle in der MSDN dokumentiert, ist praktisch sowas wie ein MS Standard.



  • Falls du C++ programmierst, mußt du wegen des name manglings nicht bloß eine *.lib (bzw. *.a) erstellen, sondern den ganzen Krempel mit MinGW neu compilieren und linken.
    Mit reinen C-DLLs müßte zumindest die DLL auch ohne Neucompilation funktionieren. Hab ich allerdings nie ausprobiert.

    Die Win-API wird mit MinGW natürlich genauso verwendet, wie mit einem anderen Compiler. Allerdings ist die MinGW-Unterstützung nicht vollständig. Es fehlen einige Definitionen, vor allem solche neueren Datums. Allerdings funktioniert schon erfreulich viel. Und wenn z.B. irgendwelche Konstanten fehlen, kann man sie ja einfach in den VC++-Headern "abkucken".

    Stefan.


Anmelden zum Antworten