Du verwendest zwei Unterstriche, was in C++ verboten ist (AFAIK auch in managed C++) -> Der Code ist falsch. Der Compiler muss ihn also nicht übersetzen. Allerdings steht im Standard nicht, das der Compiler einen Fehler melden muss. Also ist die Reaktion "interner Compilerfehler" eine völlig legale und korrekte Reaktion.
Es kann funktionieren, muss aber nicht. Du solltest deine Bezeichner grundsätzlich nicht mit Unterstrichen beginnen (jenachdem ob ein großer oder kleiner buchstabe folgt reserviert für den Compiler selbst oder für die Standardbibliothek) und Sie dürfen keine doppelten (oder noch mehr) Unterstruche enthalten (reserviert für compilereigene Zwecke). Du verstößt gegen beides auf einmal.
Hallo,
ich habe hier ein Problem aus dem ich einfach nicht schlau werde:
Da wir in der Firma viele Rechner neu einrichten müssen, bin ich gerade drüber, ein Tool zu schreiben, mit dem man unter anderem auch die IP-Adresse setzen kann.
Auf meinem Entwicklungs-Rechner funktioniert das auch soweit (Intel Pro/100 S NIC) nur auf den Rechnern auf denen es funktionieren soll (mit Broadcom NIC), gehts nicht! Selbst als ich auf einem dieser Rechner VS2003 installiert habe und das mal ganz genau untersucht habe, konnte ich das Problem nicht finden.
Der Quelltext:
public static uint set_ip(string ip_address, string subnet, string description)
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc= mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((!(bool) mo["IPEnabled"]) && mo["Description"].ToString() != description)
continue;
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = new string[]{ ip_address };
inPar["SubnetMask"] = new string[] { subnet };
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
break;
}
return (uint)outPar.Properties["ReturnValue"].Value;
}
Die IP-Adresse wird auf dem Rechner zwar gesetzt, aber nicht statisch, nach dem nächsten Neustart also wieder weg! Das passiert auf dem Rechner mit der Intel Pro/100 S nicht und ich weiß nicht wieso!
Hoffe, mir kann einer weiterhelfen...
Vielen Dank
Ich kann ja versuchen das umzuschreiben (kann C# nicht wirklich, nur C++.Net).
Also :
[Microsoft.VisualBasic.ComClassAttribute(MyComClass.ClassId, MyComClass.InterfaceId, MyComClass.EventId)] public sealed class MyComClass : System.Object
{
// .ctor
public MyComClass()
{
}
// ...
public const System.String ClassId = "04316412-C97A-4A3A-80CA-FD6CCD83D767";
public const System.String InterfaceId = "AF5A75A2-CE6D-4033-A419-0B380A9AAD76";
public const System.String EventId = "5A3F0216-BFA6-4486-8A01-56142865A22F";
}
Ich denk so solte es gehen...
Ja, eben weil die ganze (oder ein Grossteil) der Runtime auch in die Exe gepackt wird. Wär eben schön wenn das Prog die Systemlibraries verwenden würde.
Also dass man gedanklich zwischen C# und .net gar keine Verbindung zu machen braucht sondern dass es als Standalone-sprache wie C++, Delphi und Co verstanden und auch kompiliert wird.
Benutze folgendes, damit wird das Standardprogramm geöffnet für PDF-Files:
Process.Start("Datei.PDF");
Oder um noch weiter Optionen einstellen zu können:
System.Diagnostics.ProcessStartInfo procInfo = new System.Diagnostics.ProcessStartInfo("Datei.PDF");
// Die nächste Zeile versteckt das Fenster, ist gut zu gebrauchen wenn man eine DOS-Anwendung aufruft
sendInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
// Startet Prozess und macht mit der Codebearbeitung weiter, wenn dieser beendet ist, ebenfalls bei Konsolenprogrammen interessant
System.Diagnostics.Process.Start(sendInfo).WaitForExit();
Das Beispiel ist aus einem Programm von mir welches sich einer Konsolenanwendung bedient, deswegen die 2 Beispiele mit Hidden und WaitForExit.
Außerdem denke ich passt dieses Thema doch besser nach .NET als nach API.
Code-Hacker
vielleicht schaust du nochmal nach unter optionen\tastatur
wenn sie jedes mal automatisch beim drücken von F1 aufgeht kann man das vielleicht über die tastenbelegung ändern.
Zu dem Headerproblem:
Hab mir die DataGridColumnStyle Klasse mal angeschaut und nichts gefunden was mir helfen könnte.
Der Headertext ruft nur den Text des Spaltenkopfs ab oder legt diesen fest. Damit kann ich dem Benutzer irgendwie nicht die Möglichkeit geben die Spaltenüberschrift zu ändern. Hab irgendwo anders gelesen das man die Spaltenüberschrif als Textbox definieren soll, aber ich weis nicht wie ich die anspreche ...
Was das zweite Problem betrifft, so kann ich deinem Link nicht folgen. Hab hier irgendwie keinen Zugriff auf die Page. Schätze unser Server blockt das
Hallo Leute,
ich möchte eine Art Taskmanager schreiben, mit dem man sich alle laufenden Prozesse und
Application Domains (AppDomain) anzeigen lassen kann. Prozesse kann man ja relativ einfach mit der
Process-Klasse auslesen. Hiermit kann man sich sogar auch alle zugehörigen Threads anzeigen lassen.
Hier nun mein Problem: Wie kann ich - die zu einem Prozess gehörenden - Application Domain(s)
auslesen und diese zum Beispiel stoppen??? Ist es möglich sich an die ausgelesenen
Threads anzuhängen und sie zu unterbrechen bzw. ihre Priorität usw. zu ändern???
Ich bin für jeden Hinweis dankbar!
Tobias
Hi,
ich versuch gerade festzustellen welchen ID3 Tag eine MP3-Datei verwendet. Hierzu öffne ich die Datei und lese sie mit einem BinaryReader. Leider ist der ID3 Tag etwas seltsam aufgebaut. Man muss die ersten 10 Byte lesen. Die ersten drei Byte beinhalten die chars ID3. Danach kommen 2 Byte für die Version, die sind Hexadezimal kodiert. Dann kommen noch 5 Byte in binär. Ich würd gern alles in einem Char Array speichern. Wie kann ich nun sage, dass die Bytes 3 und 4 als Hexadezimal zu interpretieren sind und die Bytes 5-9 als binär? Und anschliessend will die Werte dann in Char wandeln? Kann mir hier jemand weiterhelfen?
Hi Leute,
gibts in C# eigentlich ein define oder was vergleichbares?
___
Sorry hat sich erledigt. Suchen hilft doch weiter
Falls es noch jemanden interessiert:
http://groups.google.de/groups?hl=de&lr=&ie=UTF-8&oe=UTF-8&threadm=uVj9sX4bCHA.2624%40tkmsftngp09&rnum=1&prev=/groups%3Fq%3Ddefine%2Bgroup:microsoft.public.de.german.entwickler.dotnet.csharp%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26group%3Dmicrosoft.public.de.german.entwickler.dotnet.csharp%26selm%3DuVj9sX4bCHA.2624%40tkmsftngp09%26rnum%3D1
das ist quatsch. Alles spricht dagegen. Die wollten wahrscheinlich nur eines der pro-OpenSource Argumente untergraben.
zB. der dotNET Standard wird unterwandert und das XML-Format von Office wurde patentiert.
Nix Offene Standards
Helium schrieb:
Allein durch ein Fertiges foreach könnte man IMHO auch ohne jegliche Art von Laufzeittests die meisten Indexfehler vermeiden.
nein. nach wenigen jahren kann man die simplen forech-schleifen blind hintippen.
for(int i=0;i<anzahl;++i)
cout<<a[i];
for(Node* pos=anchor;pos!=0;pos=pos->next)
cout<<*pos;
for(Bla::iterator i=bla.begin();i!=bla.end();++i)
cout<<*i;
for(int* pos=start;pos!=end;++pos)
cout<<pos;
foreach-fehler sind reine anfängerfehler.
ich wünsche mir aber trotzdem ein feines foreach in c++.