ホーム » メモ (ページ 20)

メモ」カテゴリーアーカイブ

2025年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 103,396 アクセス


ZipFold と WinXP での zip

zae などの様に,zip 内のファイル名に 5c などの文字を含まない様にしている場合は OK .
つまり,zip のファイル名として 5c が含まれていても問題ない?
 → ZipFold が MBCS のためか? 単なるバグか?
     → CharFile.hxx GetFileAttribute の “\” 削除部分のバグ.


上は GetFileAttribute のバグが原因.
Shell を使用した zip クラスの動作では,5c が含まれていてもそれなりに動作する.
UNICODE 文字はうまくなさそう.


あるフォルダ以下の圧縮で,フォルダ名が 5c 文字で終わっている場合,
MFC 6 MBCS では,CFileFind::GetFilePath の影響を受ける.
::FolderF_EnumFiles 以下の部分で,新しく定義した iFileFind を使用する様に変更.


i_Tools

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VC 7 で error C2664 std::vector

VC 6 では通っていたが,VC 7 でエラーとなってそのままだったコード.
std::vector <void*> voidPtrs(1024,NULL) ;


c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\vector(124) : error C2664:
‘std::vector >::_Construct_n’ : 2 番目の引数を ‘int’ から ‘void *const & ‘ に変換できません。
理由: ‘int’ から ‘void *const ‘ へは変換できません。
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
c:\Program Files\Microsoft Visual Studio .NET\Vc7\include\vector(109) :
コンパイルされたクラスのテンプレートのインスタンス化 ‘void std::vector<_Ty,_Ax>::_Construct(_Iter,int,std::_Int_iterator_tag)’ の参照を確認してください
with
[
_Ty=void *,
_Ax=std::allocator,
_Iter=int
]
c:\~\~.cpp(206) : コンパイルされたクラスのテンプレートのインスタンス化
‘std::vector<_Ty,_Ax>::vector(_Iter,int)’ の参照を確認してください
with
[
_Ty=void *,
_Ax=std::allocator,
_Iter=int
]


(void*) とすることで通るみたい.
std::vector <void*> voidPtrs(1024,(void*)NULL) ;

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

MFC と STL – 2

Xml_E で,MFC を使用しない様に変更中.
XML のデータを用意して,以下の様に単純に 100 個の配列にコピーする時間を計測しようとした.
   ElapseTick et ;
   CArray xmlAry ;                   // std::vector xmlAry ;
   for (int index=0 ; index<100 ; index++) {
     xmlAry.Add(Xml_Data) ;           // xmlAry.push_back(Xml_Data) ;
     }
   CString etStr = ::ToString(et.GetElapse()/1000.0) ;
   m_CtrlResult.SetWindowText(etStr) ;
データによっては期待した結果(MFC 版と同等またはそれより高速)が出たが,
この SVG を使用してメモリが少ない環境では極端に遅くなってしまった.
そこで,それぞれのサイズを調べてみた.

VC 6 VC 7 VC 8 VC 9 VC 10 VC 8 Debug VC 9 Debug VC 10 Debug VC 8 x64 VC 9 x64 VC 10 x64 VC 9 x64 Debug VC10 x64 Debug Xcode 64 Debug
CString 4 4 4 4 4 4 4 4 8 8 8 8 8
CArray 20 20 20 20 20 20 20 20 40 40 40 40 40
tstring 16 28 28 28 28 32 32 32 40 40 40 48 48 8
vector 16 16 16 24 16 20 20 20 32 48 32 40 40 24
Xml_E 68 92 92 108 92 108 108 108 152 184 152 184 184 72

tstring は,std::string または std::wstring .
vector は, <int> のサイズ.sizeof (std::vector<bool>) は vector<int> などより大きくなることがあるみたい.
Xml_E の MFC 版のデータメンバは,
CString Name , CString Text , CArray<Xml_Attribute,Xml_Attribute> Attribute , CArray<Xml_E,Xml_E> Child .
STL 版は tstring と std::vector に置換えた.

MFC Xml_Attribute 12 4 + 4*2
MFC Xml_E 52 4 + 4*2 + 20*2
STL Xml_Attribute 36 4 + 16*2
STL Xml_E 68 4 + 16*2 + 16*2

2013/04/22
SVG の全要素数は 5,557 ,属性は 19,103 .MFC 版では 518,200 ,STL 版では 1,065,584 となる.
つまり 50 M ~ 100 M 位が一時的に必要となってしまっていた(200 個にした時もあり).


ループ部分を 2 重ループとして,内側を 10 で 10 個の配列が必要となる様に改良.
時間を計測すると環境にもよるがほぼ同等の結果が得られた,
T5400 では MFC 6 秒と STL 3 秒.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

DImage の利用

Shell Extension を利用した画像表示.ダイアログにファイルをドロップすると表示する様に.
1. CStatic を用意.ピクチャコントロールを配置して ClassWizard で変数を追加.
2. DImageS の領域を確保.通常はヘッダに.
3. OnDropFiles で
    // CString dropFile = …. ;
    ImageS.SetFileName(dropFile) ;
    ImageS.Draw(&m_Image) ;
    {
      m_Image.ShowWindow(SW_HIDE) ;
      m_Image.ShowWindow(SW_SHOW) ;
      }
    // …
4. OnPaint で
    ImageS.Draw(&m_Image) ;
DImage サンプル
DImage では,ImageDMF が追加される.
DImage.zip

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

::SetCursor

使い方がわからなかったので,
最初,こんな感じにしたら,SetCursor 直後は変更されるが保持されない.
void CVEyeCSView::OnVEyeDrag()
{
  VEyeChgView::OnVEye() ;
  if (GetEyeChg().CanMouseEyeChange()) {
    ::SetCursor(m_DragEye) ;
    }
  else {
    ::SetCursor(NULL) ;
    }
  }
SetCursor 直後と言ってもデバッガでブレイクしている状態でないと確認はできない.
CWaitCursor と似た様な動作となる.


やりたかったのは,
BOOL CVEyeCSView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
  if (nHitTest == HTCLIENT) {
    if (GetEyeChg().CanMouseEyeChange()) {
      ::SetCursor(m_DragEye) ;
      return TRUE ;
      }
    }
  return VEyeChgView::OnSetCursor(pWnd, nHitTest, message);
  }
The MFC Anser Book より

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

WinFile.exe Settings

HKEY_CURRENT_USER\Software\Microsoft\File Manager\Settings

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

MFC と STL

MFC STL
CString::Right など string::substr
LPCTSTR string::c_str
LPTSTR CString::GetBuffer()    -
CString::ReverseFind() string::rfind
   - string::find_last_not_of

Xcode で,#include “..\Test\Test.h” は通らない?
バックスラッシュではなく通常のスラッシュ ‘/’ とすれば OK (VC 6 でも通る).


2013/03/04
CString::GetBuffer() にあたる部分を,string::begin() とすると VC 6 では通る(たまたま通っているだけ).
  #ifdef _MBCS
  {
    // tstring tmpStr = str + _T(“”) ;
    // _tcsrev(tmpStr.begin()) ;
    std::vector tmpStr ;
    tmpStr.resize(str.length()+1) ;
    _tcscpy(&tmpStr[0],str.c_str()) ;
    _tcsrev(&tmpStr[0]) ;
    // ….
    }
  #endif
昨日立ち読みした方法に改良.確かこんなんだったと思う.

2013/03/07
VC 7 でコンパイルすると,
  c:\…\Test.cpp(45) : error C2664: ‘_tcsrev’ :
    1 番目の引数を ‘std::basic_string::iterator’ から ‘char *’ に変換できません。

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Outlook でのメール受信が

Outlook 2010 でのメール受信ができなくなった.
以前ここにある様にアカウントの設定はしていたのに.
送信はできるが,受信ができない状態.
「送受信」でエラーにはなっていない.

他の環境の幾つかでの「受信」は特に問題ない.
  OE 6 , Vista での Windows メール , Mac の Mail など.

しばらく(1 日)わからなくて,ちょっと思い出したことが,…
以前にもこんなことがあった?
Outlook の再起動で正常な動作となった.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

SMT-i9100 入手

SMT-i9100 が手に入った.
使用目的にもよるが,大きさはちょうどいい感じ.


2013/01/24 追記
幾つかの 3D データのビューアをインストールした.
PC から Google Play にアクセスして,探してインストールするのが簡単と思われる.
時間が経ったのでちょっと覚えてないが,Google アカウントの紐付けをデバイスと行う必要があった?


Google ドライブ上の 3D ファイルを表示する方法がわからない.
メール添付の 3D データも,開こうとするとアプリケーションエラーに.
AP を起動して,AP 付属のファイルや一部 AP で /sdcard/Download/ 以下のファイルは開ける.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VEyeChgV を改良

修正内容の一部はここ
この動作中の描画部分はどうしたものか?(遅くて使えない)
VOpGLView::Draw (OpGL* oGL,…) ,または,それの個別の実装の修正が必要.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

RegSvr32 で ocx などの登録

ocx や dll の登録は,「管理者として実行」した「コマンド プロンプト」で次の様にを入力する.
RegSvr32 c:\~\AcListFF.ocx


Vista 以降では管理者として実行していないと,
[Window Title]
RegSvr32
[Content]
モジュール “C:\Users\Iwao\Desktop\Temp\AcListFF.ocx” は読み込まれましたが、DllRegisterServer への呼び出しはエラー コード 0x80040200 により失敗しました。
この問題の詳細については、エラー コードを検索語として入力してオンラインで検索してください。
[OK]
エラー コード 0x80040200 により失敗しました
次の様に,「コマンド プロンプト」を「管理者として実行」する.
「コマンド プロンプト」を「管理者として実行」
そして,
「コマンド プロンプト」で RegSvr32 ___.ocx


ActiveX.exe , ActiveX.dll の登録


2024/05/21
RegSvr32 と入力すると

---------------------------
RegSvr32
---------------------------
モジュールを登録するには、バイナリ名を指定する必要があります。

使用法: regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname

既定-	DllRegisterServer を呼び出してサーバーを登録する。
/u -	DllUnregisterServer を呼び出してサーバーを登録解除する。
/s -	サイレント; メッセージ ボックスを表示しない。
/i -	/u と併用しない場合は、DllRegisterServer の呼び出しが成功した後で、
	DllInstall(TRUE, [cmdline]) を呼び出して dll をインストールする。
	/u と併用する場合は、DllInstall(FALSE, [cmdline]) を呼び出して dll を
	アンインストールし、DllInstall が成功したら DllUnregisterServer を呼び出す。
/n -	DllRegisterServer または DllUnregisterServer を呼び出さない。
	このオプションは /i と併用する必要がある。

dllname - エントリ ポイントを呼び出す DLL への (絶対または相対) パス。この DLL は、選択したオプション (DllRegisterServer、DllUnregisterServer、DllInstall) に応じて呼び出されるエントリ ポイントをエクスポートするために必要です。
---------------------------
OK   
---------------------------

RegSvr32

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

FBX SDK

FBX SDK
FBX SDK Help
FBX SDK Archives


なんとなく FBX 2011.3.1 SDK Static Library を選択
 その中のFBX SDK 2011.3.1 (exe – 459692Kb)


2012/12/05 追記
ここにある一番古い 2005.08 には dsp があるので,VC 6 でいけそう.
examples 内の幾つかのビルドは通り,実行もできる.


新規のコンソール AP のプロジェクトを生成(MFC サポート付き).
examples の ImportScene の main 関数内の一部を _tmain に貼り付け.
プロジェクトのインクルードパスの設定に追加 C:\Program Files\Alias\FBXSDK2005.08\include
同様にリンクの追加ライブラリのパスには   C:\Program Files\Alias\FBXSDK2005.08\Lib
オブジェクトライブラリモジュールへの追加   fbxsdk_md.lib zlib_md.lib
プリプロセッサの定義に次のシンボルを追加 ,K_PLUGIN,K_FBXSDK,K_NODLL,_AFXDLL
プロジェクトの設定は,examples の dsp と比較しながら環境に合ったものに設定.


K_~ が定義されてないと,
——————–構成: T_FBX_2 – Win32 Debug——————–
リンク中…
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: class fbxsdk_2005_08::KFbxScene * __thiscall fbxsdk_2005_08::KFbxSdkManager::CreateKFbxScene(void)” (__imp_?CreateKFbxScene@KFbxSdkManager@fbxsdk_2005_08@@QAEPAVKFbxScene@2@XZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: static class fbxsdk_2005_08::KFbxSdkManager * __cdecl fbxsdk_2005_08::KFbxSdkManager::CreateKFbxSdkManager(void)” (__imp_?CreateKFbxSdkManager@KFbxSdkManager@fbxsdk_2005_08@@SAPAV12@XZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: bool __thiscall fbxsdk_2005_08::KFbxSdkManager::DestroyKFbxImporter(class fbxsdk_2005_08::KFbxImporter *)” (__imp_?DestroyKFbxImporter@KFbxSdkManager@fbxsdk_2005_08@@QAE_NPAVKFbxImporter@2@@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: void __thiscall fbxsdk_2005_08::KFbxImporter::SetPassword(char *)” (__imp_?SetPassword@KFbxImporter@fbxsdk_2005_08@@QAEXPAD@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: bool __thiscall fbxsdk_2005_08::KFbxImporter::Import(class fbxsdk_2005_08::KFbxScene &,class KStreamOptions *)” (__imp_?Import@KFbxImporter@fbxsdk_2005_08@@QAE_NAAVKFbxScene@2@PAVKStreamOptions@@@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: void __thiscall fbxsdk_2005_08::KFbxImporter::SetState(enum fbxsdk_2005_08::KFbxImporter::EImportState,bool)” (__imp_?SetState@KFbxImporter@fbxsdk_2005_08@@QAEXW4EImportState@12@_N@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: class fbxsdk_2005_08::KFbxTakeInfo * __thiscall fbxsdk_2005_08::KFbxImporter::GetTakeInfo(int)” (__imp_?GetTakeInfo@KFbxImporter@fbxsdk_2005_08@@QAEPAVKFbxTakeInfo@2@H@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: int __thiscall fbxsdk_2005_08::KFbxImporter::GetTakeCount(void)” (__imp_?GetTakeCount@KFbxImporter@fbxsdk_2005_08@@QAEHXZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: enum fbxsdk_2005_08::KFbxImporter::EFileFormat __thiscall fbxsdk_2005_08::KFbxImporter::GetFileFormat(void)” (__imp_?GetFileFormat@KFbxImporter@fbxsdk_2005_08@@QAE?AW4EFileFormat@12@XZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: __thiscall KString::~KString(void)” (__imp_??1KString@@QAE@XZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: void __thiscall fbxsdk_2005_08::KFbxImporter::GetFileVersion(int &,int &,int &)” (__imp_?GetFileVersion@KFbxImporter@fbxsdk_2005_08@@QAEXAAH00@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: static void __cdecl fbxsdk_2005_08::KFbxIO::GetCurrentVersion(int &,int &,int &)” (__imp_?GetCurrentVersion@KFbxIO@fbxsdk_2005_08@@SAXAAH00@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: enum fbxsdk_2005_08::KFbxIO::EError __thiscall fbxsdk_2005_08::KFbxIO::GetLastErrorID(void)” (__imp_?GetLastErrorID@KFbxIO@fbxsdk_2005_08@@QAE?AW4EError@12@XZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: void __thiscall fbxsdk_2005_08::KFbxImporter::SetFileFormat(enum fbxsdk_2005_08::KFbxImporter::EFileFormat)” (__imp_?SetFileFormat@KFbxImporter@fbxsdk_2005_08@@QAEXW4EFileFormat@12@@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: class fbxsdk_2005_08::KFbxImporter * __thiscall fbxsdk_2005_08::KFbxSdkManager::CreateKFbxImporter(void)” (__imp_?CreateKFbxImporter@KFbxSdkManager@fbxsdk_2005_08@@QAEPAVKFbxImporter@2@XZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: __thiscall KString::KString(void)” (__imp_??0KString@@QAE@XZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: int __thiscall KString::CompareNoCase(char const *)const ” (__imp_?CompareNoCase@KString@@QBEHPBD@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: class KString __thiscall KString::Right(unsigned int)const ” (__imp_?Right@KString@@QBE?AV1@I@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: unsigned int __thiscall KString::GetLen(void)const ” (__imp_?GetLen@KString@@QBEIXZ)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: int __thiscall KString::ReverseFind(char)const ” (__imp_?ReverseFind@KString@@QBEHD@Z)” は未解決です
T_FBX_2.obj : error LNK2001: 外部シンボル “”__declspec(dllimport) public: __thiscall KString::KString(char const *)” (__imp_??0KString@@QAE@PBD@Z)” は未解決です
Debug/T_FBX_2.exe : fatal error LNK1120: 外部参照 21 が未解決です。
link.exe の実行エラー
T_FBX_2.exe – エラー 22、警告 0


どこが悪いのかよくわからないが,
Detected memory leaks!
Dumping objects ->
{29077} normal block at 0x00DC9DD8, 456 bytes long.
Data: <  p d p p t     > D4 C3 70 00 64 C3 70 00 70 C9 74 00 00 00 00 00
Object dump complete.
スレッド 0x17D0 終了、終了コード 0 (0x0)。
確保されるのは,KFbxImporter::Import(KFbxScene&, KStreamOptions*) を呼出した時.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

_T(‘C’)

_T(“String”) の様な文字列の場合の動作は理解していたつもりでいたが,…
文字の場合も,同様に _T(‘C’) とはすぐ思いつかなかった.
7 bit の文字範囲で処理している時はあまり関係ないが,半角カナなどを扱う所でちょっと引っかかったので.
当然と言えば当然だが,ちょっと勘違いしてた.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

LCMapString , _tmain , setlocale

_mbctombb を呼出しているコードがあり,その対象の箇所は以下の様なコードで置換え可能とわかった.
::LCMapString(::GetUserDefaultLCID(),LCMAP_FULLWIDTH,str,-1,newStr..)


LCMapString の動作をコンソール AP として確認していて,
2 つ目の引数 dwMapFlags で LCMAP_SIMPLIFIED_CHINESE を見つけた.

ちょっと忙しいので詳細は後で,

_tsetlocale(LC_ALL,_T(“”)) を呼出してなかったため,UNICODE.exe でコンソールに何も表示されなかった.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

DelFileE でフォルダの削除

SendMail での DelFileE で,フォルダが削除できないことがあった.
SendMail や DelFileE は,まだ修正できないが,Send3D::CopyFile で確認.
DelFileE に登録しているフォルダ名が,”\” で終わっているコードが幾つかありそう.


2012/11/29 DelFileE 修正済


2014/12/17 MFC を使用していない方法で書き直し.
delff_e.hxx

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

error C2065 _lpa

T2OLE を利用したら,
——————–構成: Test – Win32 Debug——————–
コンパイル中…
Test.cpp
C:\…\Test.cpp(81) : error C2065: ‘_lpa’ : 定義されていない識別子です。
C:\…\Test.cpp(81) : error C2440: ‘=’ : ‘char *’ から ‘int’ に変換することはできません。(新しい動作 ; ヘルプを参照)
この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。
C:\…\Test.cpp(81) : error C2065: ‘_convert’ : 定義されていない識別子です。
cl.exe の実行エラー
Test.exe – エラー 3、警告 0

USES_CONVERSION; の指定がないとこれらのエラーが出力される.
テクニカル ノート 59


他に,今回テストに利用したサンプルで IID_PPV_ARGS が未定義となった.
動作確認が目的なので,c:\…\v7.0A\Include\ObjBase.h より対象部分の数行をコピーして利用.
COM のコーディング プラクティス

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

iPhone 3D – 3

サンプルコードの一部が,ビルド,実行できないでいた.
特に困っていたわけではないが設定箇所と思われる所を見つけたのでメモ.
iPhone 3D
iOS 6.0 に変更することで対応.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

operator[]

以下の様なコードで,配列の要素として書き戻す部分がうまく機能してなかった.
BOOL d3D_PgonsA::SetUniqueName (void) {
  { // 空の場合 “Pgons_0x” を設定
    for (int index=0 ; index<this->GetCount() ; index++) {
      d3D_Pgons1 pgons = (*this)[index] ;
      CString name = pgons.GetName().c_str() ;
      if (name.IsEmpty()) {
        name.Format(_T(“Pgons1_%03d”),index+1) ;
        pgons.SetName(name) ;
        (*this)[index] = pgons ;
        continue ;
        }
      }
    }
  // …
  }
原因は, d3D_Pgons1& operator[] (const int index) が定義されてなかったためだが,未だによくわかってない.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VEyeChgV を改良予定

共通のコードはまだ手を付けられないので,テスト的に,VOpGLS のビューに修正を加えた. VOpGLS.zip


ID_V_EYE_DRAG を追加.
マウスのイベントを追加.
  void CVOpGLSView::OnLButtonDown(UINT nFlags, CPoint point)   {
    SetDragAnchor(point) ;
    if (CanMouseEyeChange()) {
      SetDragMoveEye() ;
      DrgLastEye = GetEyeChg().GetEye() ;
      return ;
      }
    VOpGLView::OnLButtonDown(nFlags, point);
    }
  void CVOpGLSView::OnLButtonUp(UINT nFlags, CPoint point)   {
    if (CanMouseEyeChange()) {
      SetDragMoveEye(FALSE) ;
      this->InvalidateRect(NULL) ;
      return ;
      }
    VOpGLView::OnLButtonUp(nFlags, point);
    }
  void CVOpGLSView::OnMouseMove(UINT nFlags, CPoint point)   {
    if (CanDragEyeChange()) {
      Eye newEye = DrgLastEye ;
      CRect rect ;
      GetClientRect(&rect) ;
      double newAngleXY = rad(Anchor.x-point.x)*180/rect.Width () ;
      double newAngleZ =-rad(Anchor.y-point.y)*120/rect.Height() ;
      newEye = newEye.GetSpinXY(newAngleXY) ;
      newEye = newEye.GetSpinZ (newAngleZ) ;
      GetEyeChgP()->SetEye(newEye) ;
      this->InvalidateRect(NULL) ;
      return ;
      }
    VOpGLView::OnMouseMove(nFlags, point);
    }


2012/10/04 追記
同様に改良. ToPAm.zip

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Dell サポート電話

友達から,Dell の PC が起動しなくなりどうしたらいいか相談を受けた.
私も Dell を使ったことがあるので,「サービスタグ」がわかれば良いのは知っていた.
逆を言うと,「サービスタグ」がわからないと,電話番号もわからないみたい.
Dell サポート 電話番号

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.