ich weis nicht ganz genau wo ich anfangen soll also
a) zeiger sind nichts dramatisches und c# versteckt die nur (sehr simpel vormuliert)
b) im prinzip müsste du bei meinem beispiel nur noch die gewünschte transformation durchführen (ich steh dummerweise mit der c(++/# etc.) syntax auf kriegsfuss) ich versuch mal eine demo (mit korekturen zum letzten post)
#include <mmsystem.h>
void CALLBACK MidiInFunc(HANDLE hMidiIn,UINT wMsg,HANDLE * Midiout,long dwParam1, long dwParam2)
{
long chan,what,note,vel;
if (wMsg!=MIM_DATA)return;//andere meldungen
chan=dwParam1 & 0x0F;//kanal 0-15 die ersten 4 bits
what=(dwParam1 >> 4) & 0x0F;// die nächsten 4 bits u.a. note an/aus
note=(dwParam1 >> 8) & 0xFF;//sollte klar sein ;-)
vel=(dwParam1 >> 16) & 0xFF;//anschlagstärke
if (what!=8 && what!=9) return;// 8 und 9 sind note aus bzw. an alles andere wird erstmal ignoriert
midiOutShortMsg(*hMidiOut, dwParam1); // erstmal die gleiche note zur ausgabe senden
note+=12//und ne oktave höher
midiOutShortMsg(*hMidiOut, chan+what*16+note*256 +vel*256*256);
}
// in der init function:
midiOutOpen(&midiOut, MIDI_MAPPER,0,0,0);
midiInOpen(&midiIn, 0/* erstes gerät*/, (long)MidiInFunc, (long)&midiOut, CALLBACK_FUNCTION);
// beim beenden schliessen nicht vergessen:
midiOutClose(midiOut);
midiInClose(midiIn);
-evtl. winmm.lib in den linker optione eintragen
sollte eigentlich auch mit JEDEM C DIALEKT also auch vc+ und c# klappen
p.s falls du auf der suche nach einer netten programiersprache bist würd ich pascal nicht vergessen
Hallo
wenn ich euch meine klassen maile könnt ihr mir bitte die klasse so umstellen
das ich es in c# benutzen kann.
ich möchte ein Midi programm schreiben und finde keine geeignette klasse für c#
zur zeit arbeite ich mich mit sharpdevelop ein
habe aber mir das visual c#.net bestellt.
Bitte ich habe kein plan wie ich so was machen kann.
Gruß Can
Madman_y2k,
die "klassische" Art, eine Funktion von außen abzubrechen, ist einfach die Verwendung einer Abbruch-Variable - nennen wir sie "Abort".
public bool Abort;
void TXTFunction()
{
Abort = false;
while ((Abort == false) && (...))
{
// Tu was ...
}
}
private void button6_Click(object sender, System.EventArgs e)
{
Abort = true
}
Helium schrieb:
Wenn man eine Referenz by Value übergibt, dann manipuliert man eben das Objekt, auf das die Referenz verweist. Und
Foo bar;
erzeugt nunmal eine Referenz auf Foos unter dem Namen bar.
damit hat man keine Referenz !!!
Hallo,
bin leider jetzt erst zum Testen gekommen - ja es funktioniert! Auch mit dem "G" als Formatzeichen.
Ich habe zum Testen nur mal die eine Spalte gemappt. Dann wird auch nur diese eine angezeigt. Es wird mir also nichts anderes bleiben, als - wie du bereits geschrieben hast - alle zu mappen.
Besten Dank nochmals
Jürgen
Du must neuen Font erstellen:
z.B.
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
Hi,
ich suche Tutorials, wie ich .NET-Steuerelemente z.B. in C# erstellen kann. Vllt. gibt es aber schon ein fertiges. Das Steuerelement was ich brauch ist eine Linie (so wie in VISIO, die ich an beliebigen Punkten abknicken kann), die ich auch zur Laufzeit per Maus verändern kann.
Vielen Dank
ccc_mc