以下、サンプルですが、ポインタ・ハンドル間のコピーと
表示方法がわかりません。
VC++2005を使っている方、教えてください。
/*
C++
ポインタとハンドル間のコピーと、表示させる方法が知りたいです。
*/
using namespace System;
namespace test {
class Class1 {
char msg[1024];
public:
Class1(String^ _msg){
// _msgを msgにコピーする ポインターに
// msgを表示
}
};
ref class Class2 {
static String ^msg = nullptr;
public:
Class2(char *_msg){
// _msgを msgにコピー ハンドル?に
// msgを表示
}
};
}
//-----------------------------------------------
// こんな書き方でよいのか? 古いC?
// 引数は必要ないのでしょうか?
//-----------------------------------------------
int main(){
test::Class1* c1 = new test::Class1("test1");
delete c1;
test::Class2^ c2 = gcnew test::Class2("test2");
return 0;
}
No.1ベストアンサー
- 回答日時:
#include <algorithm>
#include <iostream>
#include <cstring>
using namespace System;
using namespace System::Runtime::InteropServices;
namespace test {
class Class1 {
char msg[1024];
public:
Class1(String^ _msg){
void* ptr = Marshal::StringToHGlobalAnsi(_msg).ToPointer();
std::strcpy(msg, static_cast<char*>(ptr));
Marshal::FreeHGlobal(IntPtr(ptr));
std::cout << '[' << msg << ']' << std::endl;
}
};
ref class Class2 {
String ^msg;
public:
Class2(char *_msg){
msg = gcnew String(_msg);
Console::WriteLine(L"[{0}]", msg);
}
};
}
int main() {
test::Class1* c1 = new test::Class1("test1");
delete c1;
test::Class2^ c2 = gcnew test::Class2("test2");
return 0;
}
※ 解説はご勘弁。マニュアルを読んでください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Excel(エクセル) エクセルVBA Msgboxでの変数の活用 4 2023/07/23 08:33
- 英語 節を列挙する例示表現について 2 2022/08/15 13:52
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Visual Basic(VBA) 該当セルに行替えを含むデータを命令文に入れて、2行に表示したい。 5 2023/07/20 11:51
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c++のvirtual関数および継承に...
-
VHDLのvector
-
switch文のエラーについて
-
atlbase.h と afxwin.hの同時定義
-
wstringの主力
-
wstringの内容を表示させたい
-
c++ ファイルからの複素数の読...
-
構文エラーが出ているのですが...
-
指定した文字を削除したい
-
C++で大量のエラーが出る
-
C++で2次元配列charをループしたい
-
gccでコンパイル時のエラー
-
VC++ iostreamの不具合(?)
-
構造体に決められた文字列を入...
-
【C++】ヘッダ内でstringを格納...
-
#defineの使い方について
-
C++で行列とベクトルの積を求める
-
C++での <iostream.h>と<iostre...
-
Linuxで入力待ちなしkeyread関...
-
「指定されたキャストは有効で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラーが出ているのですが...
-
switch文のエラーについて
-
enumの値から定義名を文字列化...
-
VC++で文字列から任意の文字を...
-
なぜ、C++の標準ヘッダをインク...
-
空ENTERの判別
-
std::wstringのメモリリークに...
-
C言語からgnuplot呼び出し
-
リモートデスクトップの接続元I...
-
JPEGやPNGが読めるLoadImage関数
-
このプログラミング誰か教えて...
-
std::map の const 修飾について
-
プログラミング
-
C++での <iostream.h>と<iostre...
-
#include "fstream.h"
-
#defineの使い方について
-
VS2019でofstreamが未定義になる
-
構造体配列のvectorへの変換と...
-
指定した文字を削除したい
-
string型のフォーマット書式指...
おすすめ情報