こんにちは。いつもお世話になっております。
早速ですが質問させて下さい。
VisualC++のClassWizardにて作成したメソッドの引数に文字列を返したいのですがどうすればよいでしょうか。
例えば、「test.ocx」というOCXにGetFileNameというメソッドを追加したとします。
---<GetFileName>---
UINT GetFileName(
LPCTSTR FilePath, //ファイルフルパス
LPCTSTR FileName //ファイル名
)
-------------------
---<VBからの呼び出し>---
FilePath = "C:\Program Files\test.txt"
ret = obj.GetFileName(FilePath, FileName)
'ここでFileNameに値を返したい
------------------------
ここでFileNameにOCXから値を返すようにしたいのですが、型(ClassWizardパラメータリストの「タイプ」)は何になるのでしょうか。
数値を返す場合は、「long*」でできたのですが、
文字列を返す方法が分かりません。(「LPCTSTR*」というのもないですし)
どうかご教示下さい。
<環境>
Windows 2000, Visual C++ 6.0, Visual Basic 6.0
No.2ベストアンサー
- 回答日時:
>タイプで「BSTR*」としたところ、「LPCTSTRとは型が違う」とコンパイルエラーが発生してしまいました。
NULL終端文字列はサイズの情報が入ってないので、COMではそのまま渡せないです。BSTRとかVARIANTでラップすればOK。
BSTR渡し
_bstr_t ret = _bstr_t(_T("abc"));
return ret;
確認してませんが、BSTR*渡しのときは
return &ret;
としてもうまくいかないかもしれない。
(参照渡し後の_bstr_tインスタンス消滅?)
saitohaさん、回答ありがとうございます。
(返信が遅くなり申し訳ありません。)
「_bstr_t」でうまく動作しました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
「ご処理進めて頂きますようお...
-
EXCEL VBA マクロ 実行する度に...
-
スマホでサイトの画像を長押し→...
-
フォーム上の全てのコントロー...
-
【Excel】特定の文字を含むセル...
-
VBAでループ内で使う変数名を可...
-
「PC Helpsoft Driver Updated...
-
タッチパッドはチャタリングは...
-
メルカリのメルカードで買い物...
-
Excelで検索ボタンを作るには
-
VBA エンターキーでイベントに...
-
ビープ音を連続して鳴らす
-
【access】複数のフィールドの...
-
iD
-
switch の範囲指定
-
VBA 特定の文字が入力されたセ...
-
UWSCを使った画像認証マク...
-
WebBrowser内のフォームをsubmi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
DLL内のイベントをハンドリング
-
C#のインスタンスを参照渡ししたい
-
コールバックでイベントを使う...
-
C#で引数を渡して、スレッド用...
-
[C#]FormクラスのShowメソッド...
-
フィールド(メンバ変数)のプリ...
-
Try~Catch、Finallyについて。
-
vb.net フォームアプリケーシ...
-
OCXのメソッドの引数に文字列を...
-
どういうプログラムで組みます...
-
objective-cにはCのような関数...
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
-
【Excel】特定の文字を含むセル...
おすすめ情報