解決済みの質問

質問No.1284939
すぐに回答を!
すぐに回答を!
お気に入り投稿に追加する (0人が追加しました)
回答数6
閲覧数6338
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
VB6.0で、例:StrConv(Text, vbFromUnicode)とかで使用する、
「vbFromUnicode」(文字列を Unicode からシステムの既定のコードページに変換する)
は、VB.NETでは使用できないようです。(相当する定数はない?)

「vbFromUnicode」と同等の機能を、VB.NETで使用したいのですが、
どうすれば良いでしょうか?
投稿日時 - 2005-03-22 20:19:22

質問者が選んだベストアンサー

回答No.6
思いっきり、例文に「COM1」と書いてますが、USBに書き換えてくださいね^^;

それとふと思ったのですが
udtReaderWriterModeWithoutEncryption
変数は構造体ですよね?

メンバが
lngPortName
lngBardRate
というのは、型宣言をINTEGERに変換してますよね?

ちょっとばかり不安に思ったので、追記しておきました。
投稿日時 - 2005-03-23 16:39:41
この回答を支持する
(現在0人が支持しています)
お礼
自分が作るには時間がかかりそうなので、取り合えず、VisualStudio6.0で開発してみることになりました。
その後、.NETに移行となるようであれば、試してみたいと思います。
ありがとうございました。
投稿日時 - 2005-03-26 17:09:02

ベストアンサー以外の回答 (5)

回答No.5
それならUTF8で対応できないかな?

Dim bytPortName() As Byte = System.Text.Encoding.UTF8.GetBytes("COM1" & vbNullChar)
Dim gch As System.Runtime.InteropServices.GCHandle = System.Runtime.InteropServices.GCHandle.Alloc(bytPortName, System.Runtime.InteropServices.GCHandleType.Pinned)
udtReaderWriterModeWithoutEncryption.lngPortName = gch.AddrOfPinnedObject().ToInt32()
'メイン処理
gch.Free()
投稿日時 - 2005-03-23 16:05:47
この回答を支持する
(現在0人が支持しています)
回答No.4
構造体をばらして関数の引数で渡せば、
StrConv, VarPtrも必要なし。

まずVB6で確認を。
投稿日時 - 2005-03-23 12:15:38
この回答を支持する
(現在0人が支持しています)
補足
ありがとうございます。
さっき、VisualStudio6.0で動かしてみて、動作確認まではしてみました。
構造体のばらし方が良く分かりませんが、ちょっとVS6上でいろいろやってみようと思います。
まだ、サンプルコードをイジっている段階なので、アプリを作るまでも至ってないので。
投稿日時 - 2005-03-23 12:39:06
回答No.3
.NETでShiftJISの文字列は扱えないので、byte配列変数に格納します。

System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes(文字列)
投稿日時 - 2005-03-23 09:25:46
この回答を支持する
(現在0人が支持しています)
補足
ありがとうございます。
教えていただいたのを使って試してみたいと思います。
投稿日時 - 2005-03-23 09:59:41
回答No.2
>StrConv(Text, vbFromUnicode)

この変換は何のためですか?
シリアル通信?
文字バイト取得?

別方法に置き換えないと、無理たど思いますよー
投稿日時 - 2005-03-22 23:23:50
この回答を支持する
(現在0人が支持しています)
補足
あるリーダーライタでの通信です。
シリアル版とUSB版がありますが、現在、USB版を用いてやっております。
(よって、シリアル部分はコメントにしております)
以下のVB6ソースを、VB.NETに置き換えたいと思っています。
「vbFromUnicode」、「VarPtr」が、VB.NETでは使えないので、つまっております。
もし、お分かりになるようでしたら、ご教授下さいませ。

Sub Main()
 If (InitializeLibrary() = 0) Then
   PrintLogMessage("Can't initialize library.")
   Exit Sub
 End If

 Dim udtReaderWriterModeWithoutEncryption As StructureReaderWriterModeWithoutEncryption
 Dim bytPortName() As Byte

 ' Serial
 ' bytPortName = StrConv("COM1" & Chr$(0), vbFromUnicode)
 ' udtReaderWriterModeWithoutEncryption.lngPortName = VarPtr(bytPortName(0))
 ' udtReaderWriterModeWithoutEncryption.lngBardRate = 115200

 ' USB
 bytPortName = StrConv("USB0" & Chr$(0), vbFromUnicode)
 udtReaderWriterModeWithoutEncryption.lngPortName = VarPtr(bytPortName(0))
 udtReaderWriterModeWithoutEncryption.lngBardRate = 0
 ・
 ・
 ・
 ・
投稿日時 - 2005-03-23 09:57:08
回答No.1
ないっす。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbgrfstrconvconstantchangesinvisualbasicnet.asp
具体的に何がしたいかがわかれば、別の解決方法がみつかるかもしれませんよ。

.NETで作る意味があるのかしら?
投稿日時 - 2005-03-22 22:50:40
この回答を支持する
(現在0人が支持しています)
補足
ご回答、ありがとうございます。
VB6.0で書かれたソースコードを、VB.NET環境で使おうとしています。
StrConv(Text, vbFromUnicode)を使っているところでエラーがでます。
StrConv(Text, vbFromUnicode)と同等の機能を、VB.NETで実現したいのですが、どうすれば良いでしょう?
投稿日時 - 2005-03-22 22:55:44
この質問は役に立ちましたか?
5人が「このQ&Aが役に立った」と投票しています
もっと聞いてみる

関連するQ&A

この他の関連するQ&Aをキーワードで探す

関連するガイド記事

    回答募集中

    同じカテゴリの人気Q&Aランキング

    カテゴリ
    Visual Basic
    -PR-

    OKWaveのおすすめ情報

    -PR-

    特集

    このQ&Aの関連キーワード

    同じカテゴリの人気Q&Aランキング

    カテゴリ
    Visual Basic
    -PR-

    ピックアップ

    -PR-
    -PR-