Upps vergessen zu erwähnen. Dein Code funktioniert leider auch nicht... Komischerweise meldet er ja, dass eine "unbehandelte Exception" aufgetreten ist obwohl ich es natürlich auch schon mit try{}catch ausprobiert habe.
Es verweist dann immer wieder auf den Destruktor von basic_istream und das wars... Evt. sollte ich mal ne Neuinstallation in Erwägung ziehen ^^
Unter VC kann man funktionen mit
__declspec(deprecated)
als veraltet markieren. Wenn sie benutzt werden wird eine Warnung ausgespuckt, in deinem Fall z.B. so:
class B;
class A
{
public:
A() : a(1) {}
__declspec(deprecated) A& operator=(const B& b);
int a;
};
class B : public A
{
public:
B() : b(2) {}
int b;
};
A& A::operator=(const B& b)
{
a = b.a;
return *this;
}
int main()
{
B b;
A a;
a = b; // erzeugt warnung
}
erzeugt
main.cpp(28): warning C4996: 'A::operator =': wurde als veraltet deklariert
main.cpp(7): Siehe Deklaration von 'A::operator ='
Oben hast du eine Selectbox, neben der "Build Target" steht. Da sollte standardmäßig Debug und Release drin sein. Du kannst aber auch neue Targets hinzufügen oder bestehende ändern. Dazu gehst du im Menü auf Project -> Build Options.
volkard schrieb:
Dann kann Virenscanner oder Indexdienst.
Oder sonst was. Ist mir schon öfter auf Windows passiert, dass etwas exklusiv geöffnet war, und es mir nicht aufgefallen ist. Alle weiteren Versuche, sowas zu öffnen, erzeugten dann solche Meldungen.
C# (DllImport) unterstützt keine Klassen aus native DLLs!
Mach eine "einfache" Funktion in C mit einem *einfachen* Interface, dann geht es. Beachte aber auch, dass Du den Namen in einer DEF-Datei vorgeben solltest! Sonst musst Du zuerst nach dem Compilieren den Namen in der DLL rausfinden, den Du dann in C# verwenden musst!
Hallo Leute,
ich bin dabei mein Projekt auf cmake umzustellen um damit Visual Studio Project Files zu generieren. Nun generiere ich mir mit IDL source files. Klappt auch alles wunderbar. Das idl file soll mit in dem VC Project included sein und aber nicht kompiliert werden.
Hab das ganze so versucht:
# All idl files
SET(idls b1v4)
foreach(i ${idls})
ADD_CUSTOM_COMMAND(
OUTPUT Source/iid_${i}_i.c Source/${i}.h
COMMAND midl Source/${i}.idl /D nologo /D _DEBUG /tlb res/${i}.tlb /h Source/${i}.h /iid Source/iid_${i}_i.c
)
SET(headers ${headers} Source/${i}.h Source/${i}.idl)
SET(sources ${sources} Source/iid_${i}_i.c )
SET_SOURCE_FILES_PROPERTIES(${i}.idl HEADER_FILE_ONLY TRUE)
endforeach()
Leider funktioniert es nicht. Wenn ich das Project öffne ist bei den Eigenschaften des idl files das exclude from build flag auf false gesetzt.
Hat jemand eine Idee woran das liegen könnte, bzw was ich falsch mache?
Nein - egal ob XP oder frühere Windows-Versionen, der Kompatibilitätsmodus bringt keine Lösung - vermutlich ist die Setup-Datei eine 16kBit-Anwendung und die kann W7 64Kbit nicht umsetzen ...
Ich versuch's mal mit dem virtuellen Betriebssystem ...
Tomahawk schrieb:
Ich arbeite mit dem GCC (Cygwin) unter Windows und bekomme beim Compilieren kryptische Warnungen und Fehler. Wie kann ich diese lesbar machen?
../io.cc:62: warning: format ‘%s’ expects type ‘char*’, but argument 2 has type ‘int’
Ich vermiute, er meint damit nur
../io.cc:62: warning: format "%s" expects type "char*", but argument 2 has type "int"
Die Jungs haben mal gehört, typografische Anführungszeichen seien cool und klopfen damit alles voll, bis einem Übel wird.
Ich weiß nicht, wie man es abstellt. Denke an Baseballschläger, wenn ich mal einen erwische.
Aber kannst es ignorieren, da stecken keine weiteren Informationen drin.
ThePro schrieb:
Würde ich gerne machen, jedoch muss ich in reinem C programmieren, da ich für die Uni CUDA 1.1 programmieren muss.
CUDA funktioniert mit C++ genauso (schon immer), an meiner uni kommt sogar so Zeug wie die CUDA templates zum Einsatz, sehe keinen Grund warum man da pures C verwenden sollte...
Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Nein, mit dem BCB kannst du nur unter Windows für Windows kompilieren.
Es gab früher mal von Borland Kylix für Linux, aber das wurde wieder eingestampft.
Sofern du auch die GUI-Entwicklung mit den BCB meinst (d.h. die Verwendung der VCL), so kannst du das für C++ unter Linux vergessen (auch Kylix hat eine andere GUI namens 'CLX' verwendet).
Evtl. gibt es 'Converter' für BCB C++ nach Delphi, so daß du deine BCB-Projekte nach Delphi portieren kannst, so daß du es dann leichter mit Lazarus nutzen kannst?
Auf die Schnelle habe ich folgendes gefunden: http://c2pas.sourceforge.net/
(in die andere Richtung Delphi->BCB scheint es mehr Tools zu geben...)
Leider hat sich bisher nicht viel Neues ergeben. Da ich auf die DLL zwingend angewiesen bin, habe ich den Compiler gewechselt und verwende nun MSVC2008.
Nun kann ich die DLL zwar nicht dynamisch laden, aber ich kann sie immerhin überhaupt verwenden.
Schade, dass das die einzige Möglichkeit ist - ist sie doch so wenig elegant...
Vielen Dank an alle, die wenigstens kurz überlegt haben, ob sie mir vielleicht antworten wollen.
Viele Grüße,
Tobi
Du brauchst nicht weiter recherchieren. Du musst einfach die Executable (in deinem Fall "a.out", da du keinen anderen Namen angegeben hast) im Terminal eingeben. Wenn es im PATH liegt (was es sicher nicht tut), dann langt der Name der ausführbaren Datei, ansonsten musst du das Verzeichnis relativ oder absolut mit angeben. Also entweder "HOME/Desktop/a.out" oder, wenn du im Dektopverzeichnis bist, einfach "./a.out". Als Kurzform zu "$HOME" gibt es übrigens die Tilde "~".
Vermutlich reicht es, wenn Du zu Deinem die Programm die nötigen Libraries aus dem Redistributables Ordner mit auslieferst. (Im Installationsordner von Visual Studio unter VC\Redist)
Welche Dateien das Programm braucht, kannst Du mit depends.exe herausfinden.
hth,
Christof
Hallo,
ich möchte OpenMP-Umgebungsvariablen setzen, was leider bisher noch nicht klappt. Ich benutze als IDE Netbeans, Compiler ist GCC 4.4.
Bisher habe ich immer nur Informationen finden können, wie ich die Umgebungsvariablen wie bsp. "OMP_STACKSIZE" für ein Programm setze, welches aus dem Terminal ausgeführt werden soll (das wäre vor dem Programmaufruf "export OMP_STACKSIZE=..").
Auf jeden Fall möchte ich mein Programm jedoch gern (noch) aus der IDE ausführen. Wo/wie kann ich die entsprechende Umgebungsvariable setzen? Ich habe da schon einiges probiert, allerdings funktioniert das alles noch nicht.
Wäre super, wenn mir hier jemand weiterhelfen könnte!! Vielen Dank dafür im Voraus!!
Viele Grüße
Misow
Letztlich habe ich es dann durch weglassen aller -L und -l Optionen hinbekommen und stattdessen alle .a Pfade direkt angegeben.
Insofern hat sich die Frage geklärt
Ok, jetzt habe ich meine Linuxlibs zum laufen bekommen und kan mit dem MinGW-Compiler entsprechende Codes zum laufen bringen. Kann ich die erstellten dlls nun einfach z.B. mit dem LCC-Compiler einbinden?