No.2ベストアンサー
- 回答日時:
文字列のアドレスを渡して、そのアドレスに文字列
が返却されるタイプであれば、単純に文字列を指定
すればOKです。
関数側で、メモリを確保して、そのアドレスが
返ってくるタイプのインタフェースの場合、VBで
は、ポインタを処理する型がないため、そのアドレ
スの内容を自分の変数の領域に移動させることで、
読み取ります。
移動させる関数は、RtlMoveMemoryで、下記では、
MemCopyとして定義しています。これを使って、
Dimで定義した文字列の領域に(移動前に、必要な
だけの文字を入れておくこと)コピーすればOK
です。
Public Declare Sub MemCopy _
Lib "Kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, _
hpvSource As Any, _
ByVal cbCopy As Long)
No.1
- 回答日時:
VBとCとのやりとりは、VBからCで作ったDLLを呼出しているんですね。
(Declare....で)だとして、その辺は、MSDNのDLLの呼び出しのあたりに詳しく書かれています。
要は、VBの引数受け渡し方法は、2種類(By Ref,By Val)で、デフォルトは、By Ref(だったかな?)つまり、ポインタ渡しです。
しかし、VBの文字列変数は、独特のメモリの取り方をやってるので、ヘッダー部がついている。また、NULLで終わらないので、Cの文字列とは違う、でも、質問のような受け渡しは可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
アクセスで特定の数字以外(複...
-
VBAでの Replace関数で、ワイル...
-
【Excel VBA】複数ある特定の文...
-
文字列から数式に変換する標準...
-
Excelで3E8を3.00E+8にしない方...
-
php言語の脆弱性について
-
C言語の勉強しています。すみま...
-
OnTime 使用時のプロシージャへ...
-
GASに文字列として関数を入れる...
-
【COBOL】文字列から数値項目に...
-
MS SQLServer のSQLで文字列の...
-
エクセルでSQLでいうところの「...
-
excel vba 17桁の数字が表示で...
-
BAHTTEXT関数?!
-
textboxユーザーコントロールの...
-
エクセルでセル内の文字列の最...
-
VBscriptで文字サイズを指定で...
-
【Teraterm】文字列と変数の連...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列をtxtファイル...
-
Excelで指数表現しないようにす...
-
【Excel VBA】複数ある特定の文...
-
Left関数とRight関数を合わせた...
-
エクセルで文字列の最大値を抽...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
C#で年月を比較する
-
16進数を10進数に簡単に変換す...
-
“丸(〇/○/◯)”に似た文字…
-
アクセスで特定の数字以外(複...
-
Msgboxの×が押されたとき
おすすめ情報