
orsino
Mitglieder-
Gesamte Inhalte
33 -
Benutzer seit
-
Letzter Besuch
-
Visual Studio .NET 100% kompatibel VS6?
orsino antwortete auf Crush's Thema in C++: Compiler, IDEs, APIs
Alles was du mit VS6 gemacht hast, sollte auch mit VS .Net funktionieren. Wenn du nichts mit dem .Net Framework machen möchtest, kannst du weiterhin normale MFC/ATL Anwendungen programmieren. Bei der MFC ist einiges neu aber zumindest nichts was das .Net Framework erforderlich macht. Bei MS kannst du dir auch WTL7 mit einem AppWizard für VS .Net runterladen. Du kannst also ganz normale C++ Sachen machen. In der MSDN gibt es eine interessante Column - .'Deep C++' Dort findest du einiges zum neuen Compiler, Probleme bei der Standard-Konformität und neue Features. Ein Problem bei MC++ ist der fehlende Dialog-Editor, für MFC kannst du weiterhin den gewohnten Editor benutzen. In zukünftigen Versionen soll auch für MC++ ein Editor dabei sein. Wenn du also GUI Apps für .Net machen willst ist C# wohl die beste Wahl - sofern du eine Sprache bevorzugst, die Anweisungen mit einem Semikolon beendet ;-). Dein Rechner sollte nicht der langsamste sein. MS sagst selbst, dass VS .Net nicht für eine minimale Konfiguration (Speicher, CPU) gedacht ist. Aus technologischer Sicht macht C# und das Entwickeln mit dem .Net Framework schon eine Menge Spaß. Der Code gefällt mir viel besser als bei MFC. Ein Kritikpunkt ist vielleicht, dass vielen der .Net Klassen für die CommonCtrls etwas Funktionalität fehlt. Da mußt du eben selbst aktiv werden. -
Gut, das gehört zwar nicht in diesen Thread aber wieso soll das nicht gehen? So was wie EnumWindows ist kein Problem und als Callback können Delegates benutzt werden. Für anwendungsspezifische Hooks gibts es hier ein Beispiel:How can I use 'Hooks' in .Net und mit dem folgenden MC++ Code ist auch ein globaler Hook möglich. // Hook.h #pragma once #include <windows.h> #undef MessageBox #using <mscorlib.dll> #using <system.dll> #using <system.windows.forms.dll> using namespace System; using namespace System::Windows::Forms; using namespace System::Reflection; using namespace System::Runtime::InteropServices; HHOOK g_Hook; int _stdcall KeyboardProc(int code, int wparam, int lparam) { String __gc* text = String::Concat(S"You pressed : ", __box(((Keys)wparam))->ToString()); MessageBox::Show(text, S"Hook Message", MessageBoxButtons::OK); return CallNextHookEx(g_Hook, code, wparam, lparam); } public __gc class GlobalHook { private: GlobalHook() {}; public: static void SetHook() { if (g_Hook != 0) return; Module __gc* mod = Assembly::GetExecutingAssembly()->GetModule(S"Hook.dll"); IntPtr hinst = Marshal::GetHINSTANCE(mod); g_Hook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, static_cast<HINSTANCE>(hinst.ToPointer()), 0); } static void Unhook() { if (g_Hook != 0) { UnhookWindowsHookEx(g_Hook); g_Hook = 0; } } }; Es wäre sicherlich nicht sinnvoll, wenn jeder innerhalb eines Projekts mit seiner bevorzugten Sprache entwickelt und ich glaube auch nicht, dass das ein Unternehmen zulassen wird. Aber Mehrsprachlichkeit ist nun mal ein Fakt und daran hat Java bestimmt nichts geändert. Warum soll MS sich auf eine Sprache festlegen und sich viele Türen verschließen. Man entwickelt z.B. ein Projekt in Sprache x und möchte fertige Komponenten von einem anderen Anbieter benutzen. Der hat in Sprache y entwickelt - kein Problem. Ein weiterer Grund wäre, dass bestimmte Sprachen für einige Probleme besser geeignet sind. Es gibt zum Beispiel Haskell (eine funktionale Sprache) für .Net. Es wird ja keiner gezwungen jedes größere Projekt in mindestens 3 Sprachen zu entwickeln. Wenn man allerdings darauf angewiesen ist oder es gute Gründe gibt, besteht zumindest die Möglichkeit.
-
ProcessExplorer - sollte jeder haben. http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
-
Also .NET ist ja nicht bloß C#. Das beste an .NET ist meiner Meinung nach die Möglichkeit verschiedenen Sprachen einzusetzen und dass man die fertigen Komponenten auch objektorientiert weiter verwenden kann, z.B. in anderen Sprachen von den vorhandenen Klassen abzuleiten. Java ist auch nicht besonders fortschrittlich in der Entwicklung. Angeblich denkt man bei Sun darüber nach endlich Templates einzuführen. Bertrand Meyer (Designer von Eiffel) hat einige interessante Artikel zu .Net veröffentlicht. http://www.fawcette.com/dotnetmag/2001_12/online/online_eprods/bmeyer/ http://www.sdmagazine.com/documents/s=7134/sdm0205j/ Jemand hat im Thread geschrieben, dass es schwieriger wäre die WinAPI von .NET Anwendungen aus zu nutzen. Zuerst schien mir das auch so, aber mittlerweile habe ich festgestellt, dass es auch hier wesentlich besser als MFC ist. Wenn man z.B. einen ListView mit OwnerDraw haben möchte, überschreibt man einfach die WndProc Funktion und kann alle entsprechende Windows Nachrichten abfangen und selbst behandeln. In C# besteht zwar der Nachteil das verwendete API structs und enums neu definiert werden müssen, aber man kann das ganze ja auch in MC++ machen und von C# aus oder was auch immer verwenden.
-
Wenn du etwas über Hintergründe und Philosophie erfahren willst dann schau (hör) dir mal die technet casts von Don Box an. Die sind wirklich großartig. http://technetcast.ddj.com/tnc_search.html?key=don+box http://www.only4gurus.com/webcasts/teched02.asp
-
Was heißt media dateien lassen sich nicht mehr verschieben? Kannst du das etwas genauer beschreiben?
-
INTERNET_CONNECTION_OFFLINE Flag nicht definiert
orsino antwortete auf Comroader's Thema in C++: Compiler, IDEs, APIs
INTERNET_CONNECTION_OFFLINE ist in WinInet.h (Internet Development SDK) definiert. -
C++, JAVA, Smalltalk, Visual Basic sind keine deklarativen Sprachen. Beispiele sind Prolog (damit habe ich keine Erfahrung), XSLT, SQL.
-
Mir ist nicht ganz klar was Du mit binary mode meinst. In C# würde das vielleicht so aussehen. In VB.Net müsstest Du anstelle der using Anweisung explizit try-catch-finally Blöcke verwenden. using (FileStream stream = File.Open("test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) { StreamWriter writer = new StreamWriter(stream); stream.Position = stream.Length; // alternativ stream.Seek(0, SeekOrigin.End); writer.WriteLine("... something appended"); writer.Flush(); }
-
Die member variablen werden, wie von crush schon erwähnt, in der reihenfolge ihrer deklaration in der klasse initialisiert. Der Grund ist einfach der, dass das zerstören der objekte genau in der umgekehrten reihenfolge der initialisierung ausgeführt wird. Verschiedene konstruktoren können eine unterschiedliche reihenfolge der initialisierungsliste festlegen und dann wäre die sache nicht eindeutig. Bei den aufrufen der konstruktoren der basisklassen ist die hierarchie entscheidend bzw. die reihenfolge in der liste basisklassen. class c : public a, public b konstruktor von a zuerst dann von b
-
Unter Windows kannst du das zm Beispiel mit dem Windows Media Format SDK machen. Dort gibt es auch ein Beispiel ID3Tag.
-
Cursor in C/C++ frei positionieren
orsino antwortete auf Thias78's Thema in C++: Compiler, IDEs, APIs
in Visual C/C++ kannst du SetConsoleCursorPosition benutzen. -
Suche ein Steuerelement ähnlich der Listbox
orsino antwortete auf Boro's Thema in Delphi/RPG+CL/Sonstige
Warum nimmst du kein ListView control? ListView listView = new ListView(); listView.View = View.Details; listView.Columns.Add("column1", ...); listView.Columns.Add("column2", ...); ... -
DirectX in eigenes Projekt einbinden
orsino antwortete auf Jaipur's Thema in C++: Compiler, IDEs, APIs
Bei den linker optionen unter input/additional dependencies musst du die benötigten libs angeben, z.B Strmiids.lib für DirectShow Projekte. In der Msdn ist beschrieben welche libs für welche Projekte notwendig sind. -
Man kann, das workbook objekt hat ein 'open' event.