関連記事
- 【#CPP】出先でC++にてライブラリの緊急実装!脳死したーキョムリすぎるー 【2024年01月15日(月)】
- 【C#】謎な改造アプリ,SIMD命令を導入して高速化しようか,思案中 【2023年11月14日(火)】
- 生成AI「仕事で利用」2割 正確性などに懸念(23/5/7) 【2023年05月07日(日)】
- 死体キタ━(゚∀゚)━!!病み上がりなのにC++1000行実装などを 【2022年10月24日(月)】
- VC++のXMLパーサをC#で書き直しているが,XMLな実装作業の苦行なことモルモルモル 【2022年05月10日(火)】
ついに,禁断の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) { //にゃぁ~にゃぁ~にゃぁ~ }みたいな感じで,キャストしてやる必要がありますです
コメント
【#緊急非常事態】スマホを紛失した!amazonで買ったカナビラがぶっ壊れてスマホが消えた!
「君たちはどう生きるか」「ゴジラ-1.0」アカデミー賞を受賞
昼から雨だそうな.人が洗車すると..ブツブツ
【訃報】TARAKOさん急死 63歳 「ちびまる子ちゃん」を35年
【#訃報】漫画家 鳥山明さん死去 68歳 「DRAGON BALL」などで人気
たぬきケーキの人気再燃 レトロな魅力、再販する店も
【#株価】日経平均株価 終値で初の4万円台 史上最高値を更新(24/3/4)
睡眠「成人は6時間以上」 新ガイドは日本人の眠りを変えられるか
再起動不要でWindows 11をアップデートする機能、2024年後半に導入か
【#確定申告】さて,税務も終わった件