は、私はあなたが実際にあなたが尋ね尋ねしようとしていないという疑いを持っています。
例の.dllファイルは単なる共有ライブラリです。共有ライブラリとGCCをリンクすることができます。唯一の問題は、あなたがあなたのライブラリと呼ぶものです:
// Stage 1: Build and link the library:
gcc -c -o mylib.o mylib.c // Compile
gcc -shared -o mylib.dll mylib.o // on Windows
gcc -shared -o libmylib.so mylib.o // on Linux etc.
命名規則は実際には慣例に過ぎません。今すぐプログラムをリンクしてください:
// Stage 2: Build and link your application:
gcc -c o main.c main.cpp // Compile
gcc -o main main.o mylib.dll -lm -lfoo -lgdi32 // Windows
gcc -o main main.o libmylib.so -lm -lfoo // Linux
gcc -o main main.o -lmylib -lm -lfoo -L/opt/mylibs // Alternatively
コードが完全に手元にある場合は、まずライブラリを作成してプロジェクトにリンクしてください。
実際には、ライブラリのソースコードが利用できず、Windowsバイナリしか持っていない場合は、状況が非常に厄介です。たとえば、バイナリ形式は互換性がありません。
あなたは頭の爪を打つが、私はまだあなたのための質問があります。 DLLはVB6コンパイラを使用して作成されます。これはWindowsバイナリを作成していませんか?なぜこれはgccを使ってリンク可能ですか? – Peretz
Windowsでは、GCCの一部であるリンカはWindowsバイナリ形式を使用しているので、すべてのWindows DLL(すべて同じバイナリ形式を使用します)を読み取ることができます。 C関数を使っている限り、C ABIは非常に安定しているので、あなたは比較的安全です。あなたがC++クラスライブラリで同じことをしようとすると、うまくいくかもしれません。 –
Linuxではどうなりますか? gccを使用してDLLをリンクできますか? – Peretz