Gibt es einen Befehl oder Möglichkeit wie ich per Javascript oder was auch immer... aus der HTMl-Seite die im Webbrowsercontrol geladen ist- eine Funktion aus meiner C#-Anwendung aufrufe?
Umgekehrt kann ich doch z.b. aus C# mit execScript("scriptaufruf", "scriptsprache) eine Javascript-Funktion auf der HTML Seite im Webbrowsercontrol aufrufen.
Und wie geht es von HTML nach C# ?
Hab mal irgendwas von nem bestimmten Protokoll gehört das "res" heisst ?
Ich weiss ja nicht was Du in deinem ArrayList abspeicherst. Aber ich würd mal in meinen jugendlichen Leichtsinn behaupt, implementiere für das betreffende Objekt ICloneable
Hallo,
weiß jemand wie ich die zuweisung in Zeile 10 in C# bzw. dotNet hinkriege?
01: procedure TForm1.GetData(DataSet: TDataSet);
02: type DataRec=Record
03: data1: Array[1..3,1..12] of Double;
04: data2: Array[1..16] of double;
05: data3: byte;
06: end;
07: var
08: datarecord:^DataRec;
09: begin
10: pChar(datarecord):=pChar(VariableVomTypTMemoField.AsString);
11: end;
Danke schon im voraus.
aaaaahhh Danke! Naja das sind eben einfach die Implentierungsfeinheiten, mit MFC in C++ konnte ich zeichnen, auch wenn es da viel grauenvoller umgesetzt war.
Pen erzeuge ich nicht immer neu, habe ich jetzt nur reingeschrieben, dass das Beispiel "minimal" ist, also mit einer Prozedur auskommt.
Mal angenommen du hast in deinem Applikationsverzeichnis die native dll Test.dll, mit der Methode:
int Addiere(int zahl1, int zahl2)
Dann kannst du das in C# so machen:
[DllImport("Test.dll")]
public static extern int Addiere(int zahl1, int zahl2);
Und dann kannst du irgendwo in deinem code die Methode ganz normal aufrufen:
int ergebis = Addiere(1, 4);
Du bist nicht ganz richtig. Hier gehts um C#, daß is nicht direkt C und solche Sachen, wie Du sie machen willst, macht man in C# etwas anders (ich meine einfacher...). Aber nun gut.
Prinzipiell mußt Du folgendes machen: zuerst läßt Du Dir in eine Variable (nennen wir sie mit scanf den Wert eingeben. Dann das gleiche für eine andere Variable (nennen wir sie Y). Dann kannst Du einen Speicherblock belegen, der X * Y Werte aufnehmen kann. Wieviel Bytes an Speicher für dieses Array dafür benötigt werden, hängt davon ab, was groesse[][] für einen Datentyp beherbergt (ein char, int, etc.). Dann kannst Du dem Array groesse die Adresse des zuvor belegten Speicherblocks zuweisen und schon kannst Du z.B. auf groesse[0][7] zugreifen (wenn das array so groß sein sollte).
PC-User schrieb:
Ansonsten sehe ich nur den Weg, um es einfacher zu machen:
void Test(object Obj)
{
if (Obj == tpyeof(int)){
Test((int)Obj);
}
else if(Obj == typeof(string)){
Test((string)Obj);
}....
}
Damit "kapselst" Du in gewisser Weise die Entscheidung weg, was wie gerufen werden muß. Wenn Du's richtig kapseln willst, mußt Du's halt mit einer Klasse machen, die nur public Test(Obj) kennt und dann intern die richtige "Detail"-Methoden implementiert (also int, string, long etc.). Das wäre dann auch die elegante Methode, die Dir vorschwebt.
Das gefällt mir, danke!
Ach ja... Ich glaube echt, dass das was ich machen will garnicht funktionieren KANN.
Angenommen, ich habe eine Funktion überladen wie oben (einmal mit int-Parametern, einmal mit string-Parametern), meine getData-Funktion liefert aber was vom Typ List zurück, dann haben wir das Problem, dass zur Laufzeit erst festgestellt werden kann, dass es für diesen Aufruf ja garkeine Funktion gibt (wir legen ja erst zur Laufzeit den Rückgabewert fest) Und das geht glaub echt nicht
Ok ich denke ich weiss was du meinst.
So könnte das gehen ich werd mich mal dransetzten.
Falls nicht steht dieser Post in ein paar Wochen wieder an der Spitze
Vielen DANK für die Hilfe !
mfg ToMjAcK
Nein, will ich nicht. Es wird ein etwas komplizierterer Vergleich.
Ich habe auch das Gefühl, dass das nicht geht, was ich will... Siehe dazu auch meinen anderen Thread...
Ich nehme an die Situation ist folgende?
public object Element {
get { return my_arrayList; }
}
Dann kann die ArrayList my_arrayList nicht verändert werden. Das heisst aber nur dass die Referenz nicht verbogen werden kann. Um auf die ArrayList schreibend zuzugreifen braucht er die Referenz nur lesend bekommen.
Element = my_otherList; // klappt nicht
((ArrayList)Element).Remove(1); // klappt, weil:
ArrayList list = (ArrayList)Element; // readonly-Zugriff auf Element
list.Remove(1); // list ist aber nicht konstant
wow vielen Dank, ich hab as in 1 gemacht und hab dann einfach den verweis nochmal neu angelegt und jetzt geht es. Vielen Dank für deine Hilfe, jetzt kann ich wieder weiter schaffen
Optimizer schrieb:
Hallo, Moderator *klopf* *klopf*
ncc-1701-m schrieb:
Leider nur für das 1.xer Framework:
http://ndoc.sourceforge.net
Damit fällt's flach. .Net 1.x war ein Schnellschuss nach dem gerichtlichen Verbot der proprietären Java-Erweiterungen und hatte praktisch noch keinen eigenen Style, war mehr vom Gedanken geprägt, COM+ weiter zu entwickeln. Ich habe aber bzgl. der Dokumentation gelesen, dass Microsoft die internen Doku-Tools für .Net 2.0 in absehbarer Zeit veröffentlichen will. Gute Nachrichten also.
Sorry, das wollte ich eigentlich zitieren.
Noodles schrieb:
Ja kann man. Öffne mal Deine csproj Datei mit nem Texteditor.
Beispiel:
<ItemGroup>
<Content Include="XMLFile.xml">
<DependentUpon>ProgramFile.cs</DependentUpon>
</Content>
</ItemGroup>
Danke für deine Hilfe.