.NET und RS232



  • Moinsen,

    Mein Programm, dass ich für die Kommunikation über die serielle
    Schnittstelle in VS 6.0 in MFC geschrieben habe, habe ich nun in VS 2005
    übernommen.
    Naja... es funzt net mehr. Ich kenn mich mit den Unterschieden zwischen
    VS 6.0 und VS 2005 nicht aus. Ich hab auch in einigen Foren gelesen,
    dass in .NET zur Programmierung der seriellen Schnittstelle C# empfohlen
    wird?!
    Kann sich wer die Klasse anschauen und mal debuggen, ich weiss nicht ob
    es viel Aufwand ist, sie für VS 2005 anzupassen?!

    Link für die Files der Klasse
    http://www.mikrocontroller.net/topic/99546#new

    Danke!



  • Naja... es funzt net mehr

    Was funktioniert nicht mehr?
    Compilieren? Linken? Runtime Errors?



  • Ich hab auch in einigen Foren gelesen,
    dass in .NET zur Programmierung der seriellen Schnittstelle C# empfohlen
    wird?!

    Kann man, muss man aber nicht.

    Dein Problem hat aber gar nichts mit .NET zu tun.
    (Schliesse ich daraus, dass deine Comport Klasse ein *.h und ein *.cpp File sind und es nach C++ Code aussieht.)



  • hmmm, soll ja auch c++ Code sein, die Klasse stammt ja auch aus meiner MFC Anwendung?????!
    Der Compiler meldet Probleme bei der sprintf- Funktion.



  • Der Compiler meldet Probleme bei der sprintf- Funktion.

    Je genauer Du die Fehler Meldung wiedergibst, desto schneller und besser kann Dir geholfen werden.
    Also wie ist die Fehlermeldung?



  • hmmm, soll ja auch c++ Code sein, die Klasse stammt ja auch aus meiner MFC Anwendung?????!

    Hier ist aber das C# .NET Forum.



  • Fehler/warning Liste beim compilieren:

    warning C4996 'sprintf' was declared deprecated (Line 131)

    warning C4996 'sprintf' was declared deprecated (Line 132)

    error C2664: 'CreateFileW': cannot convert parameter 1 from 'char*' to 'LPCWSTR'(Line 141)

    error C2664: 'BuildComDCBW': cannot convert parameter 1 from 'char*' to 'LPCWSTR'(Line 167)

    error C2664: 'MessageBoxW': cannot convert parameter 2 from 'char*' to 'LPCWSTR'(Line 413)

    wanring C4267: 'argument': conversion from 'size_t' to 'DWORD', possible loss of data



  • warning C4996 'sprintf' was declared deprecated (Line 131)
    warning C4996 'sprintf' was declared deprecated (Line 132)

    (F1 drücken und Hilfe lesen.)
    Wie der Compiler Dir sagt: Diese Funktionen sind als veraltet gekennzeichnet (sie werden in Zukunft nicht mehr unterstützt). Verwende stattdessen das sichere sprintf_s(..).
    http://msdn.microsoft.com/en-us/library/ce3zzk1k.aspx
    (Eine andere Lösung um die Warnungen zum verschwinden zu bringen wäre _CRT_SECURE_NO_WARNINGS bei den Preprocessor Direktiven einzufügen.)

    error C2664: 'CreateFileW': cannot convert parameter 1 from 'char*' to 'LPCWSTR'(Line 141)
    error C2664: 'BuildComDCBW': cannot convert parameter 1 from 'char*' to 'LPCWSTR'(Line 167)
    error C2664: 'MessageBoxW': cannot convert parameter 2 from 'char*' to 'LPCWSTR'(Line 413)

    Diese Fehler hängen damit zusammen, dass die Default Einstellung beim VS2005 auf Unicode steht.
    Da genügt es bei Dir die Projekt Settings auf Multibyte zu umzustellen.
    Normalerweise ist der korrekte Weg das Makro _T("") zu verwenden.

    Edit:

    wanring C4267: 'argument': conversion from 'size_t' to 'DWORD', possible loss of data

    Wie der Compiler sagt, passen diese Datentypen nicht zusammen. Entweder casten oder aber (korrketerweise) die richtigen Datentypen verwenden.



  • Dieser Thread wurde von Moderator/in dEUs aus dem Forum C# und .NET in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Danke für eure Hilfe, ich hab es nun geschafft und die Klasse funktioniert!


Anmelden zum Antworten