ComPorts über 9?
-
Hallo,
jetzt bekomme ich die Folgende Fehlermeldung:
'CreateFileW': Konvertierung des Parameters 1 von 'System::String ^' in 'LPCWSTR' nicht möglich
-
Ich sag ja: Es führt nur zu Probleme, wenn Du C++/CLI und C/C++ mischt, ohne dass Du weisst, was Du tust!!!
Nimm entweder C/C++ und dann folgendes
TCHAR comPort[30]; for(int i=20; i>=; i--) { _tsprintf(comPort, _T("\\\\.\\COM%d"), i); // ... }
oder nimm die SerialPort Klasse.
-
Danke für deine Hilfe.
Eigentlich wollte ich es mir einfach machen und alten Code wieder verwenden.
Nehm jetzt doch die CLI.
-
Erstes Problem gelöst.
Dafür jetzt ein anderes.
Ich brauche in meiner Schleife eine Wartefunktion die,
die Schleife erst nach einer gewissen Zeit wieder ausführt.
Ich habe es mit Sleep() probiert.
Doch dann bleibt der Rechner stehen.clock_t start;
String ^str;
int wert;
wert =1;
int i;
i=1;while(wert!=21)
{
String ^comPort = String::Format(".\\COM{0}", i);this->serialPort1->PortName = comPort;
this->serialPort1->DtrEnable = true;
this->serialPort1->RtsEnable = true;
i++;str = wert.ToString();
label3->Text = "ComPort: "+str+" ";
label3->Refresh();int sekunden = *zeit * CLOCKS_PER_SEC;
start = clock();
while( clock() < start + sekunden)
{}
wert++;
}
-
guude,
Jochen Kalmbach schrieb:
http://support.microsoft.com/kb/115831/en-us
PS: Warum mischt Du native und managed Code? Macht doch gar keinen Sinn!
Verwende doch System::IO::Ports::SerialPort !ist es mit diesem namespace auch moeglich auf usb ports zu zugreifen?
gruss,
buk
-
Guck Dir den System::Threading::Timer oder die anderen zwei Timers an (findest du wenn Du in Google "msdn timer .net" eingibst.
Simon
-
buk schrieb:
ist es mit diesem namespace auch moeglich auf usb ports zu zugreifen?
wenn dahinter ein serial <> usb converter ist schon.
Simon
-
guude,
theta schrieb:
wenn dahinter ein serial <> usb converter ist schon.
Simonleider nicht. ich habe hier ein stueck code eines mfc projektes in dem mit CreateFile ein handle erzeugt wird, das dann der methode DeviceIoControl uebergeben wird um mit dem usb port des druckers zu kommunizieren und daten zu lesen bzw zu schreiben.
ich weiss nur nicht wie ich das nun in einem c++/cli projekt einbinden soll/muss.
regards,
buk
-
In C++/CLI kannst Du es einfach "reinkopieren" und es geht sofort
Das ist ja gerade der Vorteil von C++/CLI!
-
danke, und ich muss nichts mehr includen? weil, wenn ich das in c# programmieren wollte muesste ich doch die kernel32.dll importieren, wie hier[1] beschrieben, oder?
regards,
buk[1] http://pinvoke.net/default.aspx/kernel32/CreateFile.html
-
Nein. Es reicht, wenn Du
#include <windows.h>
machst. Nötigenfalls noch die LIBs dazulinken...
-
vielen dank!