Ich bekomme die Fehlermeldung:
Der Prozedureinsprungpunkt CreateFileA wurde in der dll WS2_32.DLL nicht gefunden
Da das beim Aufruf eines Fortran-Programms aus C heraus auftritt, nehme ich an, dass ich hier richtig bin.
Ich habe das noch mal überarbeitet. Es ist so, dass der Fehler bereits auftritt, wenn im Fortran-Programm ein call an ein Modul drinnen ist, das aber überhaupt nicht aufgerufen wird.
Mein aktuelles Testprogramm:
extern "C" void qqctest_();
extern "C" void g95_runtime_start(int argc, char *argv[]);
extern "C" void g95_runtime_stop();
int main()
{
char *openarg;
int i;
i=0;
openarg=0;
g95_runtime_start(i, &openarg);
qqctest_();
g95_runtime_stop();
return 0;
}
Das aufgerufene Test-Programm:
subroutine qqctest
real, save :: x
x=0.
if (x > 100.) call qqrplot (topen, x, y)
return
end
Link-Bibliotheken (die erste ist meine eigene):
../../F/G95/bin/qqmodlib.a
../../F/G95/lib/gcc-lib/i686-pc-mingw32/4.0.3/libf95.a
"../../Compiler lcc-win32/lcc/lib/ws2_32.lib"
Kommentiert man den Call aus, läuft das Programm:
subroutine qqctest
real, save :: x
x=0.
! if (x > 100.) call qqrplot (topen, x, y)
return
end
Falls jemand das nachtesten möchte, kann er sich meine Modlib, die Testprogramme und die Fortran-Übersetzungsprozedur hier runterladen: Zip-File
Ich bin für jede Idee dankbar. Einen Fehler meinerseits schließe ich inzwischen fast ganz aus.
cottonwood (10.878) 167x Beste Antwort 275x "Danke"
|