Zum Inhalt springen

orsino

Mitglieder
  • Gesamte Inhalte

    33
  • Benutzer seit

  • Letzter Besuch

  1. 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.
  2. 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.
  3. ProcessExplorer - sollte jeder haben. http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
  4. 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.
  5. orsino

    .net

    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
  6. orsino

    Windows 2000 Instabil

    Was heißt media dateien lassen sich nicht mehr verschieben? Kannst du das etwas genauer beschreiben?
  7. INTERNET_CONNECTION_OFFLINE ist in WinInet.h (Internet Development SDK) definiert.
  8. C++, JAVA, Smalltalk, Visual Basic sind keine deklarativen Sprachen. Beispiele sind Prolog (damit habe ich keine Erfahrung), XSLT, SQL.
  9. 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(); }
  10. 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
  11. Unter Windows kannst du das zm Beispiel mit dem Windows Media Format SDK machen. Dort gibt es auch ein Beispiel ID3Tag.
  12. in Visual C/C++ kannst du SetConsoleCursorPosition benutzen.
  13. Warum nimmst du kein ListView control? ListView listView = new ListView(); listView.View = View.Details; listView.Columns.Add("column1", ...); listView.Columns.Add("column2", ...); ...
  14. 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.
  15. Man kann, das workbook objekt hat ein 'open' event.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...