Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

WinSock-Problem geklärt

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.

« Letzte Änderung: 22.05.06, 00:12:53 von cottonwood »

Antworten zu WinSock-Problem geklärt:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich möchte noch ergänzen, dass das alles abstrahiert wurde, um dem Problem auf die Sprünge zu kommen. Falls jemand den Fehler gefunden hat, kann er auch mit dem Original- Testprogramm testen:

extern "C" void qqctest_(float*,float*,char*,float*,float*);
extern "C" void qqopen_(float*,float*,char*,float*,float*);
extern "C" void qqpoint_(float*,float*);
extern "C" void qqline_(float*,float*);
extern "C" void qqclose_();
extern "C" void g95_runtime_start(int argc, char *argv[]);
extern "C" void g95_runtime_stop();
int main()
{
float ix, iy, scalex, scaley;
char outfile[14], *openarg;
int i;

i=0;
openarg=0;
g95_runtime_start(i, &openarg);
ix=1201.; iy=1001.;
scalex=1.; scaley=1.;
/*qqctest_(&ix,&iy,".\\qqtest.bmp\0",&scalex,&scaley);*/
qqopen_(&ix,&iy,".\\qqtest.bmp\0",&scalex,&scaley);
ix=10.;iy=10.;
qqpoint_(&ix,&iy);
ix=1190.; iy=990.;
qqline_(&ix,&iy);
qqclose_();
g95_runtime_stop();
return 0;
}


Ergänzung: Ruft man das alles aus einem Fortran-Programm heraus auf, dann läuft das problemlos.

weitere Ergänzung: Dass die Laufzeitbibliothek erfolgreich initialisiert wurde, kann man sehen, wenn man testweise Read- oder Write-Statements einfügt wie z.B.

write (6,*) "Der Wert von x ist", x
read (5,*)


Das funzt problemlos.

« Letzte Änderung: 21.05.06, 13:01:05 von cottonwood »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Eine kleine Zeile hat's verursacht:

i=hostnm(hostname)

Die Prozedur hostnm kann die WinSock wohl nicht.


Ich möchte mich bei allen bedanken, die sich Gedanken zu dem Thema gemacht haben. Dass das niemand lösen konnte, war mir natürlich vorher nicht klar. ():-)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Na dann aber ab in die Ecke und schämen  ;D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Na dann aber ab in die Ecke und schämen  ;D

Also ich programmiere schon etwas länger. Aber dass ein Modul, das von mir im aktuellen Ablauf überhaupt nicht aufgerufen wird, dennoch zum Fehler führt, hatte ich bis dahin noch nicht erlebt. ::)

Es würde mich auch mal interessieren, wie das Laufzeitsystem das gemacht hat. 8)

« Suche Programm zur Analyse von übersetzten Modulen *.oFehler "FindAtomA" wurde in der DLL "WS2_32.DLL" nicht gefunden. »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Grundstrich
Der Begriff des Grundstrichs im Bereich der Typografie, bezeichnet den senkrechten Strich der Buchstaben. Bei Schriftarten mit variabler Strichstärke, wie zum Beispi...

Haarstrich
Der Begriff Haarstrich stammt aus dem Bereich der Typographie. Bei Schriften, wie zum Beispiel der Antiquaschrift mit unterschiedlichen Strichstärken, wird zwischen ...

Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...