関連記事
- 【#Assembler】結局x64のアセンブラでゴニョゴニョと書き始めたオイラはバカかっ!(爆 【2024年05月13日(月)】
- 【#VCPP #VisualStudio】VS2022のVC 64ビットコンパイルでインラインアセンブラが使えなくなってるぞー 【2024年05月10日(金)】
- 【#CPP】出先でC++にてライブラリの緊急実装!脳死したーキョムリすぎるー 【2024年01月15日(月)】
- 【C#】謎な改造アプリ,SIMD命令を導入して高速化しようか,思案中 【2023年11月14日(火)】
- 生成AI「仕事で利用」2割 正確性などに懸念(23/5/7) 【2023年05月07日(日)】
ついに,禁断の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) { //にゃぁ~にゃぁ~にゃぁ~ }みたいな感じで,キャストしてやる必要がありますです
コメント
急激に寒くなってキター 晩秋がやってきた!
【#諸塚村】連休初日のBBQの模様なぞをアップしてみる
冷房なしで日中過ごすの,いつ以来よっ!?優しい涼しさが心地よい
【#異星人 発見!】異星人から謎の暗号メールを受け取った!解読不能ヤバス【シレペヒキク】
タッパーウェアが破産申請を計画、事業てこ入れ策つまずく-関係者
電子レンジが不調になったヤバス
【#地震】霧島山で有感地震 生駒高原のあたりか?(24/9/6)
奄美大島のマングース 環境省が根絶宣言