GeForce GT 630 に変更
T5400 のグラフィックボードを Quadro FX 570 から GeForce GT 630 に変更.
サウンドデバイスが見つからない状態になり,音が出なくなった.
セットアップ時だったか,ボードのサウンド機能を利用する様な表示があった様な?
音が出ないことはそれほど問題ないと思っていたが,Skype などが出来ない.
それとは別の要因だが CD ドライブが開かなくなってしまった.以前から調子が悪かった.
グラフィックのドライバを何とか入れ直し,設定などを見たが,特に設定はなさそう.
検索すると,BIOS の設定で回避できるとある.
Auto から On にして,再起動.
すると,音は出る様になったが,表示が…
さらに再起動して,それなりの動作となった.
C2582
ちょっとわかりにくいエラーメッセージだったので,…
——————–構成: Read_3D – Win32 Debug——————–
コンパイル中…
c:\…\p_a_3ds.hxx(101) : error C2582: ‘operator ‘entry’ 関数は ” 内では使用できません。
cl.exe の実行エラー
Read_3D.exe – エラー 1、警告 0
MSDN では,
コンパイラ エラー C2582
‘identifier’ : 代入演算子 ‘operator =’ が、指定されたクラスに定義されていません。
指定されたクラスには、代入演算子 operator=() が定義されていません。
クラスを引数とする代入演算子を定義している場合は、コンパイラはデフォルトの代入演算子を生成しません。
代入演算子は、各クラスに対して明示的に定義しなければなりません。代入演算子は派生クラスに継承されません。
OCX x64
MFC を利用した x86 の ocx の 64 ビット化.
しばらくやってないので,Win XP 32 ビット環境の VC 6 で,スケルトンの作成から.
ActiveX Controls Inside Out を見ながら,スケルトンを作成.
そのままビルドして,ActiveX コントロール テスト コンテナ で,挿入してテスト.
OnDraw のEllipse を DrawText に書換え.
void C????Ctrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) { // pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH))); // pdc->Ellipse(rcBounds); v_tstring buildMacros = ::Debug_GetMacroCC_v() ; CString macroStr = ::String_Join(buildMacros,_T("\r\n")).c_str() ; CRect rect = rcBounds ; pdc->DrawText(macroStr,rect,0) ; }
Debug_GetMacroCC_v は次の様なコード.
inline std::vector Debug_GetMacroCC_v (void) { std::vector typeAry ; #ifdef _WIN64 typeAry.push_back(_T("_WIN64 ")) ; #elif _WIN32 typeAry.push_back(_T("_WIN32 ")) ; #endif // ... #ifdef _MFC_VER typeAry.push_back(_T("_MFC_VER ")+::utot(_MFC_VER,16)+_T(" ")) ; #endif #ifdef _UNICODE typeAry.push_back(_T("_UNICODE ")) ; #endif // ... return typeAry ; }
今度は,Win 7 x64 環境で,VC 9 を利用しての確認.
「ActiveX コントロール テスト コンテナ」は,以前のバージョンとは異なり標準では存在しない.
検索するとサンプルにあるとのこと.
Win 7 環境には C:\…\VC2010Samples\C++\MFC\ole\TstCon があったので VC 10 でビルド.
VC 9 でスケルトンから作成して,OnDraw を同様に書換え.
また,構成マネージャを使用して x64 を追加.
それぞれの Release 版でビルド.
コントロールの登録は,管理者として起動した「コマンドプロンプト」で行っている.
それぞれの ocx のフォルダに移動し,regsvr32 ~.ocx として登録.
この時,ocx により?自動的に regsvr32 の 64 / 32 ビットそれぞれで登録されているみたい.
Excel 2010 で試すには,コントロールの挿入のために開発タブを有効にする必要がある.