- PR -

&%とは

1
投稿者投稿内容
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-07 11:54
こんにちは。

1つ教えて下さい。

タスクバーにアイコンを登録するプログラムの一部です。

Dim nIcon As NOTIFYICONDATA, Rc&
Dim Tip() As Byte, i%

Tip = StrConv("V3/22" & Chr(0), vbFromUnicode)

For i% = 0 To UBound(Tip)
nIcon.szTip(i%) = Tip(i%)
Next
Rc& = Shell_NotifyIcon(NIM_ADD, nIcon)

---------------------------------
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" _
(ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'************
Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip(63) As Byte
End Type
'************
Public Const NIM_ADD = &H0

というコードがありますが
Rc&の&とは?
i%の%とは?

何を意味するのでしょうか?

またTip = StrConv("V3/22" & Chr(0), vbFromUnicode)とは
何をしているのでしょうか?

いろいろ検索しますたが全く解らず..
申し訳ありません、宜しくお願いします。

indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-03-07 12:13
確か、&は文字列型、%は整数型を示しているはず。。

StrConvは文字コードの変換です。

参考になればと思います。
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2008-03-07 12:23
%は整数型 Int32
&は長整数型Int64
文字列型は $ですね。(私はこれしか知りませんでした...)

キーワード[VB 変数 サフィックス % &]
http://www.google.co.jp/search?hl=ja&q=VB+%E5%A4%89%E6%95%B0+%E3%82%B5%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B9+%25+%26&lr=

@ITの記事もありました。
http://www.atmarkit.co.jp/fdotnet/dotnettips/155numtype/numtype.html

参考までに...
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-03-07 12:39
&は知りませんでしたが、$とか%とか!とかは大昔のBASICから共通ですね。
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2008-03-07 12:49
引用:

なびさんの書き込み (2008-03-07 11:54) より:
またTip = StrConv("V3/22" & Chr(0), vbFromUnicode)とは
何をしているのでしょうか?



Windows APIのShell_NotifyIconA関数を使うための準備ですね。この場合、NOTIFYICONDATA構造体のszTipにC言語形式のANSI文字列データを渡す必要がありますが、VBの内部文字コードはUnicodeなので、Shift_JIS(ANSI)へ文字コードを変換する必要があります。そのためにStrConv関数を使用しています。

さらに、C言語の文字列データでは文字列の終端を表すために文字コード0の値で終わっている必要があるため、Chr(0)でその値を結合しています。

バイト配列に対しては文字列データをそのまま代入できるため、
このように書くことができます。

なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-07 13:19
ありがとうございます。

もう少し教えて下さい。

VB6.0からVB2005に変換したところ
「vbFromUnicodeは宣言されていません」
になってしまいます。

対応方法はあるのでしょうか?
ぱてお
常連さん
会議室デビュー日: 2008/03/07
投稿数: 41
投稿日時: 2008-03-07 13:36
スレッドを分けた方が良さそうな感じですけれど。

単純な話でvbFromUnicodeがVB2005では使えないと言う話ですよね。
vbFromUnicodeで検索すると似たようなケースがヒットするみたいですけれど、
検索して見られましたか?
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2008-03-07 14:09
スレッドを分けたほうがいい、に一票投じておきます。

えと、その前にタスクバー(タスクトレイ?)にアイコンを表示するのならば
NotifyIcon コントロールがあるんじゃないかと思いますが。
VB6のサンプルを引っ張ってきて、それをなんとかVB2005で動かそうとしている
とかいう話ではないですよね。

あとコードは[code][/code]で囲むといいと思います。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
1

スキルアップ/キャリアアップ(JOB@IT)