Zwergli schrieb:
Hallo,
Generic1 schrieb:
using namespaceDerDll.Classname;
Klassennamen gibt man nicht in der Using Direktive an, da gehören nur Namespaces rein.
Ist mir glatt entgangen..
Th69 schrieb:
Eine Solution (.sln) besteht aus 1 oder mehreren Projekten (.csproj und evtl. andere Projekte).
Also öffne einfach die .sln-Datei.
Besten Dank!!!!
Hi,
ich hab mich jetzt noch mal daran versucht
in meinem Beispielprojekt die c#DLL in eine separate Domain
zu laden.
Er lädt zwar die DLL aber scheint trotzdem nicht zu funktionieren
wie ich es mir erhofft hatte. Es wird scheinbar das Assembly
in die Hauptdomain geladen, da durch irgendein Grund AssemblyResolve gefeuert wird
. Wahrscheinlich muss ich mich wohl vom Gedanken verabschieden, SatellitenDLL zu verwenden und einen file-Basierten RessourcenManager anlegen.
grüße
hier der Versuch in separate Domain zu laden:
void AssemblyUtilities::testAppDomian()
{
::System::Windows::Forms::MessageBox::Show("testAppDomain");
::System::String^ directory = "c:\\externin\\";
::System::AppDomainSetup^ tAppSetup = gcnew ::System::AppDomainSetup();
tAppSetup->ApplicationName = "CsharpLibrary";
tAppSetup->ApplicationBase = directory;
tAppSetup->PrivateBinPath = directory;
tAppSetup->ShadowCopyFiles = "true";
::System::AppDomain^ tAppDomain = ::System::AppDomain::CreateDomain("LIBD", nullptr,tAppSetup);
::System::String^ pathToManagedAssembly = "c:\\externin\\cSharpDLL.dll";
if(System::IO::File::Exists(pathToManagedAssembly))
{
try
{
array<byte>^ tASMbyte;
::System::IO::FileStream^ fs = gcnew ::System::IO::FileStream(pathToManagedAssembly, ::System::IO::FileMode::Open);
int tLength = (int)fs->Length;
tASMbyte = gcnew array<byte>(tLength);
fs->Read(tASMbyte, 0, tASMbyte->Length);
fs->Close();
::System::Object^ tObj = tAppDomain->CreateInstanceAndUnwrap("cSharpDLL","cSharpDLL.Class1");
::System::Reflection::MethodInfo^ mI = tObj->GetType()->GetMethod("showFrom",::System::Reflection::BindingFlags::Public |
System::Reflection::BindingFlags::Static);
mI->Invoke(nullptr,nullptr);
}
catch(::System::Exception^e)
{
::System::Windows::Forms::MessageBox::Show(e->ToString());
}
}
}
@Doug_HH
Danke für Deine Hilfe!!
Ich habe jetzt folgende Lösung gefunden:
Anstatt einer DataTable binde ich ein DataSet an das DataGridView. Siehe da, die Zeilen werden farbig und der Spaltenindex wird richtig erkannt.
Warum das mit einem DataSet geht und mit einer DataTable weiß ich zwar nicht, aber vorerst bin ich einfach mal glücklich damit, dass ich endlich zum gewünschten Ergebnis komme.
Falls jemand eine Erklärung dafür hat, ich würde mich über eine Antwort freuen!
Danke!
sonic_1233 schrieb:
Beim meinem Projekt ist "Localizable" auf True gesetzt, und ich verwende mehrere Sprachen.
Das neue Icon muss für jede Sprache in den Properties gesetzt werden
Imho ist Localizable nicht empfehlenswert.
http://www.c-plusplus.net/forum/p2195934#2195934
Hallo,
physikus schrieb:
Mein Programm soll einige Aktionen ausführen sobald es gestartet wird. Diese gehören dann wohl unter
static void Main()
meiner Klasse
Program
.
Du kannst diese Aktionen aber auch in den Konstruktor von Form1 einfügen, und zwar direkt hinter den InitializeComponent() Aufruf ...
physikus schrieb:
Nun gibt es aber logischerweise auch Daten auf die ich in beiden Klassen zugreifen möchte.
Wie und Wo muss ich diese deklarieren, damit das möglich ist?
... womit sich diese Frage erübrigt hat.
Gruß
Michael
Hallo,
also ich habe das Programm zu laufen gebracht und die Test´s waren fehlerfrei. Vielen Dank für eure Hilfe!
asc schrieb:
Fakt ist, das nur wenige hier eine Komplettlösung präsentieren, davon lernt man nichts, aber auch gar nichts. Du musst verstehen was du falsch machst, um dies auch wirklich zu verinnerlichen. Wenn du dann an einen konkreten Problem hängst, und eine konkrete Frage (Und nicht: Macht mal das es läuft) stellst, wird dir auch geholfen.
Ich wollte ja von Anfang an nicht das mir jemand meine Arbeit macht sondern Hilfe das ich es selber schaffe. Naja lange Rede kurzer Sinn Dank eurer HIlfe und einem Buch was ich mir gestern noch zusätzlich gekauft habe funzt es jetzt.
Bin mal gespannt auf die Note. In meinem alter nochmal Noten ......
µ schrieb:
Ist doch niedlich, dass die Form den Focus haben muss, damit der "Keylogger" auch funktioniert
Ich kann net mehr.
Aber vielleicht hat der Thread Ersteller ja gar nichts böses vor. ^^
@ Thread Ersteller
cedric30003 schrieb:
Habe noch nicht soviel Erfahrungen in C#, arbeite mich derzeit durch Tutorial-Videos durch.
- Kauf dir lieber ein GUTES Buch
- Schau dir mal die Windows Hooks an
- Oder GetAsyncKeyState falls du es mit den Hooks nicht hinbekommst ^^
Aber da du ja sich nichts böses machen willst was die ganze Zeit irgendwelche Tasteneingaben mitloggt wäre GetAsyncKeyState denke ich mal ausreichend.
Btw. beschäftige dich mal mit Sniffern und Verschlüsselungen, dann kannst du mal sehen wie schnell dein FTP Account weg sein kann.
Ach ja, und beschäftige dich mal mit Reverse Engineering.
Weißt du zufällig auch, wie ich mich automatisch auf einer Website anmelden kann? Ich möchte das mein webclient die vorgefertigten Felder benutzername und passwort automatisch ausfüllt und anschließend den login button betätigt.
Ist das auch Möglich?
Zu Frage 1: Nein, gibts nicht. Du musst dein Koordinatensystem aus Linien und Rechtecken und Ovalen und Splines selbst zusammenbauen.
Oder Du suchst nach einem kompletten Koordinatensystem-Control. Das hat bestimmt schon mal jemand programmiert.
lolalter schrieb:
Grundlagenwissen auf richtige Problemstellungen zu transferieren. Gib's endlich auf.
Ich finde, auch Hartnäckigkeit sollte irgendwann belohnt werden.
Sobald eine Form vergrößert/verkleinert wird, werden immer alle enthaltenen Steuerelemente neu gezeichnet - da brauchst du nichts von Hand tun.
Wenn du die Größe des Panels anpassen willst, dann verwende Dock bzw. Anchor dafür (oder verändere per Code Location und Size entsprechend).
Und bist du sicher, daß du this.Width/Height anstatt panel1.Width/Height verwenden willst?
P.S. Verwende niemals CreateGraphics, sondern e.Graphics!!!