■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#2314-1ポインタの使用について剣心1999-07-29(木) 20:22
     #2316-0RE#2314:ポインタの使用について魔界の仮面弁士1999-07-29(木) 20:33
     #2318-1RE#2316:ポインタの使用について剣心1999-07-29(木) 20:52
     #2324-1RE#2318:ポインタの使用についてJavaエバンジェリスト1999-07-29(木) 21:45
#2314-1
ポインタの使用について
VBでポインタが使用できると聞いたのですが、
どのように使用するのかわかりません。
簡単なサンプルソースなどを添付していただけると
うれしいのですが。
どなたか、教えてください。
よろしくお願いします。
#2316-0
RE#2314:ポインタの使用について
> VBでポインタが使用できると聞いたのですが、
VBには、そもそもポインタの概念がありません。
ポインタを使用するようなコード設計があれば、そちらを見なおしてください。
どうしてもやりたければ、CでDLLを組み、それを呼び出した方が良いかもしれません。

> どのように使用するのかわかりません。
> 簡単なサンプルソースなどを添付していただけると
> うれしいのですが。
API呼び出しのためにポインタを利用せざるを得ないこともあります。
その場合、VB5以降であれば、以下のものが使えます。
  AddressOf 演算子  :プロシージャのアドレスを取得する。関数の引数指定の時のみ、使用可能。

また、非公開ではありますが、以下のような関数もあります。
  VarPtr :変数のポインタをLong型で返します。
  StrPtr :文字列のポインタをLong型で返します。
  ObjPtr :オブジェクトのポインタをLong型で返します。

なお、VBでは、ポインタからその変数の値を取得することはできません。
(APIを使って、そのアドレスにある値を、別の変数にコピーして参照すれば、OKらしいですが。)
#2318-1
RE#2316:ポインタの使用について
> なお、VBでは、ポインタからその変数の値を取得することはできません。
> (APIを使って、そのアドレスにある値を、別の変数にコピーして参照すれば、OKらし>いですが。)

魔界の仮面弁士さんありがとうございます。
出来ればそのAPIの名前をおしえてほしいのですが。
よろしくお願いします。
#2324-1
RE#2318:ポインタの使用について
どうもです。

> 魔界の仮面弁士さんありがとうございます。
> 出来ればそのAPIの名前をおしえてほしいのですが。
> よろしくお願いします。

こんなんで参考になりますか?

Option Explicit

Public Declare Sub CopyMemory _
Lib "KERNEL32" _
Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)

Public Sub Main()

    Dim strSource       As String
    Dim strDestination  As String
        
    '// コピー元の文字列
    strSource = "文字列ポインタ"
    '// コピー先の文字列
    strDestination = Space$(Len(strSource))
    '// ポインタを使用して文字列のコピーを行う
    Debug.Print "コピー前:" & strDestination
    Call CopyMemory(ByVal StrPtr(strDestination), _
                    ByVal StrPtr(strSource), _
                    LenB(StrConv(strSource, vbUnicode)))
    Debug.Print "コピー後:" & strDestination
    
End Sub

お役に立てば。
このページと関連する記事:
#670-1DocumentPropertiesで、現在の設定の取得について1999-07-01(木) 11:45
#15807-0APIの使い方教えてください、Cの「**変数名」定義2000-02-09(水) 15:23
#15542-0Cの構造体をVBで表現する方法について2000-02-07(月) 00:05
#10849-0Nullの使い方?2000-08-24(木) 17:19
#10035-0プロセスメモリーのこと2000-04-30(日) 09:36
#5177-1unsigned char * をVBで宣言するには?1999-09-14(火) 18:36
#46595-0Cの関数Call の際のパラメータに構造体は?2001-09-06(木) 13:17
#37924-0CでのポインタをVBで実現可能?2001-01-30(火) 11:31
#41543-0配列のキャスト2001-04-11(水) 11:56
#36334-0ポインタの処理2001-01-04(木) 11:09
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)