関連記事
- 【memory leak】メモリーリーク発生...ドロドロドロ 【2025年10月27日(月)】
- う~~忙しい!あ~~忙しい!! 【2025年09月24日(水)】
- 【#ChatGPT】ChatGPTのヤロー(怒 SJIS変換サンプルコード,嘘コード吐いてやがった.原因対応に2時間も悩んだぞー 【2025年02月22日(土)】
- ぎんゆぅ~さんの更新頻度が落ちているときは仕事炎上中(爆 【2025年01月09日(木)】
- 仕事が納まった,のか?一応,拘束解除命令が出たモルモルモル 【2024年12月27日(金)】
ついに,禁断のC++/CLIに手を出してみたり...
いや,悪戦苦闘中(爆
少しずつ,ここにTIPSが上がるはず?
ってことで,第一弾
- アンマネージクラスにマネージクラスのメンバを追加したいのじゃ!
class CHogeHoge : public CObject
{
private:
Bitmap^ m_Image;
}
見たいなの書くと...- error C3265: マネージ ‘m_Image’ をアンマネージ ‘CHogeHoge’ で宣言できません。
まぁ,メモリ管理の問題から,いろいろあるっちゃろねぇ
アンマネージとマネージの間には,深くて暗い川があるしのぉ~
でも,使いたいんじゃぁ~~ 😈
ってことで,調べていったら...
裏技発見!
C++/CLI – ネイティブクラスメンバのマネージクラス – LangEdge Weblog
さまのページに,記載がありましたです
なんでも,マネージクラスメンバの宣言時に
- gcroot<マネージクラス名^>
書き直してみた
class CHogeHoge : public CObject
{
private:
gcroot<Bitmap^> m_Image;
}
これで,コンパイルも通り,使えるようになりましたです 😉 あと,この変数のNULLチェックですが
if (m_Image == nullptr)
{
//にゃぁ~にゃぁ~にゃぁ~
}
と書くと- error C2088: ‘==’ : struct に対して正しくありません。
チェックするためには一手間必要で
if (static_cast<Bitmap^>(m_Image) == nullptr)
{
//にゃぁ~にゃぁ~にゃぁ~
}
みたいな感じで,キャストしてやる必要がありますです
コメント
【桜】毎年恒例,国富の一本桜を見物に
【#パイナップル】パイナップル様をベランダへ移動させたべ
明日は天気が悪くなるの.花芽が大きくなるような降雨かの?
宮崎交通 路線バス 4月から大幅減便 運転士不足で(26/3/14)
JR大阪駅近くの工事現場 下水道の管が地上部分にせり出したか
雷が鳴ってる!今年初の雷キター
【#イラン戦争】イラン最高指導者ハメネイ師が死亡 トランプ大統領 SNSに投稿
土砂降りじゃー 春の雨が降りまくってる
今週は天気が悪いっぽい.ようやっと雨が定期的に降りだした