Burger
09-01-2006, 14:14
Hallo,
ich bin es wieder. Ich habe jetzt Kapitel 3 abgeschlossen und mich mit Wagemut an Kapitel 4 herangemacht. Dort wird zunächst eine "tiny C-like library" vorgestellt. Habe das soweit alles nachvollziehen können. Damit ich das Ding dann aber auch in "Aktion" sehen kann, habe ich es abgetippt (hüstel) und versucht das Demo-Programm zu kompilieren.
Das hier ist der Befehl zum kompilieren:
g++ -o ./CLibTest ./CLibTest.cpp ./CLib.cpp
Es folgt dann diese Fehlermeldung, die ich nicht verstehe...
./CLibTest.cpp: In function ‘int main()’:
./CLibTest.cpp:25: error: conversion from ‘CStash*’ to non-scalar type ‘CStash’ requested
./CLibTest.cpp:32: error: conversion from ‘CStash*’ to non-scalar type ‘CStash’ requested
./CLibTest.cpp:34: error: conversion from ‘CStash*’ to non-scalar type ‘CStash’ requested
Ich vermute, dass sich die Fehlermeldung auf den Aufruf der Funktion "void* fetch(CStash* s, int index) bezieht, da diese ja einen void-Pointer zurückliefert.
Zeile 25 in Test.cpp lautet:
cout << "fetch(&intStash, " << i << ") = " << *(int*)fetch(&intStash, i) << endl;
Zeile 32 lautet:
add(&stringStash, line.c_str());
Zeile 34 lautet:
while((cp = (char*)fetch(&stringStash,i++)) != 0)
Wobei cp ein char* ist.
Ich wollte nicht den ganzen Code (sowohl header, lib als auch Test) posten, weil ich hier nicht ausufern möchte. Sollte es gewünscht sein, kann ich das aber tun.
Mir würde für den Anfang aber auch schon eine Erklärung dazu genügen, was ein skalarer bzw. nicht-skalarer Typ ist.
Bis dann,
Marco
ich bin es wieder. Ich habe jetzt Kapitel 3 abgeschlossen und mich mit Wagemut an Kapitel 4 herangemacht. Dort wird zunächst eine "tiny C-like library" vorgestellt. Habe das soweit alles nachvollziehen können. Damit ich das Ding dann aber auch in "Aktion" sehen kann, habe ich es abgetippt (hüstel) und versucht das Demo-Programm zu kompilieren.
Das hier ist der Befehl zum kompilieren:
g++ -o ./CLibTest ./CLibTest.cpp ./CLib.cpp
Es folgt dann diese Fehlermeldung, die ich nicht verstehe...
./CLibTest.cpp: In function ‘int main()’:
./CLibTest.cpp:25: error: conversion from ‘CStash*’ to non-scalar type ‘CStash’ requested
./CLibTest.cpp:32: error: conversion from ‘CStash*’ to non-scalar type ‘CStash’ requested
./CLibTest.cpp:34: error: conversion from ‘CStash*’ to non-scalar type ‘CStash’ requested
Ich vermute, dass sich die Fehlermeldung auf den Aufruf der Funktion "void* fetch(CStash* s, int index) bezieht, da diese ja einen void-Pointer zurückliefert.
Zeile 25 in Test.cpp lautet:
cout << "fetch(&intStash, " << i << ") = " << *(int*)fetch(&intStash, i) << endl;
Zeile 32 lautet:
add(&stringStash, line.c_str());
Zeile 34 lautet:
while((cp = (char*)fetch(&stringStash,i++)) != 0)
Wobei cp ein char* ist.
Ich wollte nicht den ganzen Code (sowohl header, lib als auch Test) posten, weil ich hier nicht ausufern möchte. Sollte es gewünscht sein, kann ich das aber tun.
Mir würde für den Anfang aber auch schon eine Erklärung dazu genügen, was ein skalarer bzw. nicht-skalarer Typ ist.
Bis dann,
Marco