INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

OEM TO ANSI



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

13.11.2007, 10:35
Beitrag #1

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
OEM TO ANSI
Wo finde ich eine Funktion um OEM zu ANSI zu konvertieren?

Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.11.2007, 10:42
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
OEM TO ANSI
' schrieb:Wo finde ich eine Funktion um OEM zu ANSI zu konvertieren?

Danke

Windows API: MultiByteToWideChar() und dann zurück WideCharToMultiByte()

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 10:47 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2007 13:55 von jg.)
Beitrag #3

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
OEM TO ANSI
Hier die VIs (sollten passen).

eg

(VIs LV 8.0)


Angehängte Datei(en)
Sonstige .vi  ascii2uni.vi (Größe: 18,31 KB / Downloads: 281)

Sonstige .vi  uni2ascii.vi (Größe: 19,1 KB / Downloads: 288)

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 10:52 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2007 11:04 von rolfk.)
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
OEM TO ANSI
' schrieb:Hier die VIs (sollten passen).

eg

Mit kleinen (grossem) Fehler! Die length Parameter sind alle int gemäss MSDN und das ist 32 Bit und nicht 16 Bit unter Windows 32 Bit. Die 16 Bit Zeiten sind schon lang vorbei und 64 Bit steht vor der Tür! Auch UINT ist 32 Bit und nicht 16 Bit. LPWSTR lpWideCharStr und die anderen Widechar Buffer ist jeweils ein Array von 16 Bit Charactern, nicht 8 Bit und die damit enhergehenden Längen sind in Charactern.

Last but not least, wenn Du den Multibytestring als Array of Bytes übergibst fügt LabVIEW nicht automatisch ein NULL Byte an, und ist damit -1 als Längenangabe ungültig. und wenn MultibyteToWidechar eine explizite Multibytelänge mitbekommt die den (in diesem Fall nicht vorhandenen NULL Character nicht enthält) enthält der resultierende WideCharString auch keinen NULL Character und ist damit -1 als Längenangabe in WideCharToMultiByte auch ungültig.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 11:01
Beitrag #5

NicoB Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Nov 2007

2011
2007
EN

66822
Deutschland
OEM TO ANSI
Im Visual Studio gibt es doch die Funktionen AnsiToOem und OemToAnsi, kann man diese nicht über .Net in LabVIEW aufrufen.
Bzw. machen die Funktionen MultiByteToWideChar() ... das gleiche?
Und wie füge ich diese in LabVIEW richtig ein?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 11:10
Beitrag #6

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
OEM TO ANSI
' schrieb:Im Visual Studio gibt es doch die Funktionen AnsiToOem und OemToAnsi, kann man diese nicht über .Net in LabVIEW aufrufen.
Bzw. machen die Funktionen MultiByteToWideChar() ... das gleiche?
Und wie füge ich diese in LabVIEW richtig ein?

AnsiToOem und OemToAnsi werden wohl 99% sicher auf Basis von MultiByteToWideChar() und viceversa implementiert sein. Bemühung von .Net erscheint mir zumindest überflussig so in diesem Fall auch eventuel nicht equivalent zu den VisualStudio Funktionen.

Besser wäre dann wohl gleich die Verwendung von CharToOemA() oder CharToOemBuffA() in user32.dll.

Rolf Kalbemratter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.11.2007, 11:23
Beitrag #7

NicoB Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Nov 2007

2011
2007
EN

66822
Deutschland
OEM TO ANSI
' schrieb:AnsiToOem und OemToAnsi werden wohl 99% sicher auf Basis von MultiByteToWideChar() und viceversa implementiert sein. Bemühung von .Net erscheint mir zumindest überflussig so in diesem Fall auch eventuel nicht equivalent zu den VisualStudio Funktionen.

Besser wäre dann wohl gleich die Verwendung von CharToOemA() oder CharToOemBuffA() in user32.dll.

Rolf Kalbemratter
Danke hab die Funktion gefunden.
LabVIEW stürzt aber ab sobald ich sie aufrufe.
Mein Prototyp sieht so aus: void CharToOemA(CStr arg1, CStr arg2);
Wie sollte er aussehen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 11:46
Beitrag #8

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
OEM TO ANSI
' schrieb:Danke hab die Funktion gefunden.
LabVIEW stürzt aber ab sobald ich sie aufrufe.
Mein Prototyp sieht so aus: void CharToOemA(CStr arg1, CStr arg2);
Wie sollte er aussehen?

Versuchs mal so.
long CharToOemA(CStr lpszSrc , CStr lpszDst );

Gruss
Roland

Für mich eine gute Gelegenheit, mein VI durch RolfK zu prüfen Rolleyes


Angehängte Datei(en) Thumbnail(s)
   

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 13:37
Beitrag #9

NicoB Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Nov 2007

2011
2007
EN

66822
Deutschland
OEM TO ANSI
' schrieb:Versuchs mal so.
long CharToOemA(CStr lpszSrc , CStr lpszDst );

Gruss
Roland

Für mich eine gute Gelegenheit, mein VI durch RolfK zu prüfen Rolleyes
Hab es so gemacht aber LabVIEW stürtzt immer noch ab. Hier mal mein VI


Angehängte Datei(en)
Sonstige .vi  test.vi (Größe: 11,64 KB / Downloads: 237)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 14:28
Beitrag #10

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
OEM TO ANSI
Die beiden Parameter sind von Typ String und C String Pointer.

siehe MSDN http://msdn2.microsoft.com/en-usbrary/ms647473.aspx

Parameters

lpszSrc
[in] Pointer to the null-terminated string to translate.
lpszDst
[out] Pointer to the buffer for the translated string. If the CharToOem function is being used as an ANSI function, the string can be translated in place by setting the lpszDst parameter to the same address as the lpszSrc parameter. This cannot be done if CharToOem is being used as a wide-character function.

Gruss
Roland

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: