2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930

カテゴリー

アーカイブ

ブログ統計情報

  • 99,780 アクセス


LAN-GTJU3H3 追加

LAN-GTJU3H3 を追加.
何が悪いのかわからないが 100 M で接続されているみたい.今の用途では遅さはそれほど気にならない.
付属のマニュアルはちょっと古いみたいで,ここからマニュアルを参照.

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

時刻の同期

6/20 に HDL-Z2WM2C2 を追加した.
ソースファイルの保管のサーバとしての利用で,Win7 USB 2 HDD と比べても遜色ない.
ひとつ気になることが,思っていたよりファンの音がうるさい.


先日,クライアントの PC と WSS で,時間が少しずれていたので time.windows.com で時刻を合わせた.
今日時刻を見てみると 10 秒位の差ができてしまっている.
もう少し精度が欲しかったので検索すると,
インターネット時刻機能のポーリング間隔を調整する方法
Windowsの時計がずれる / 自動で正確に合わせる小技 (Windows 7/8.1編)
これらを参考にさせてもらって,1 日に 1 回程度の設定とした.

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

Polymorphism

class iDocCSV1 : public iDocText {

virtual long GetFieldNo (c_tstring& fieldName) const { return FNoNOP ; }

} ;
c_tstring fieldName となっていた.


TextureTo_1::MakeCSV1 でタプルクォーテーションでうまく括られない.閉じる ‘\”‘ が付加されない.
   da.push_back(::QuotM_Add_Auto( GetPath () ) ;
原因はよくわかってないが,LPCTSTR 版を利用することで対応.
   da.push_back(::QuotM_Add_Auto( GetPath ().c_str()) ) ;
MakeCSV1 を切り出してコンソール AP としてテストしたが,期待した動作となり原因は掴めてない.


2014/06/25
また次の様なコードで,STL 版ではうまく動作していない.
{
tstring str ;
str += tt1->GetName() + _T(“\r\n”) ;
str += tt1->GetPath() + _T(“\r\n”) ;
str += tt1->GetPathPNG()+ _T(“\r\n”) ;
str += tt1->GetPathTGA()+ _T(“\r\n”) ;
m_TexPath1 = str.c_str() ;
}
MFC 版では OK .
{
CString str ;
str += tt1->GetName ().c_str() + CString(_T(“\r\n”)) ;
str += tt1->GetPath ().c_str() + CString(_T(“\r\n”)) ;
str += tt1->GetPathPNG ().c_str() + CString(_T(“\r\n”)) ;
str += tt1->GetPathTGA ().c_str() + CString(_T(“\r\n”)) ;
m_TexPath1 = str ;
}


2014/06/27
また,::String_Join_Line でうまく結合されなかった.
デバッガで調べると,サイズは確保されいる.メモリの内容をよーく見てみると,途中に ” が入っている.
原因は,MFC を利用しない方法で書き直した ::DropFilesTo のバグ.
ファイル名の最後に余分な ‘\0’ が付加されていた.

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

VC 6 MFC サポートのコンソール AP で,C4786

c:\program files\microsoft visual studio\vc98\include\utility(123) :
warning C4786: ‘std::vector<std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,std::allocator<std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > > >’ :
デバッグ情報で識別子が 255 文字に切り捨てられました。
StdAfx.h の #include <iostream> より前に,以下を追加して対応.

    #pragma warning (disable : 4786 )
    #include <utility>
//  #pragma warning (default : 4786 )
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

MFC DLL → Static – 2

VC 6 などで生成したプロジェクトを,VC 7 ~ VC 11 まで順に変換して利用してきたもの.
「共有 DLL で MFC を使う」から「スタティック ライブラリで MFC を使用する」に変更してビルドすると,
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\afx.h(24):
  fatal error C1189: #error : Building MFC application with /MD[d]
   (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
プロジェクトの「プロパティページ」-「構成プロパティ」-「C/C++」-「コード生成」-「ランタイム ライブラリ」を
  「マルチスレッド DLL (/MD)」から「マルチスレッド (/MT)」に変更.


ビルドは通る様になったが,起動時メインフレーム表示直後にアプリケーションエラー.
  プロジェクトのプロパティで,「リンカ」-「デバッグ」-「デバッグ情報の生成」で「はい (/DEBUG)」に.
  ビルドして実行すると,
  C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc\docsingl.cpp
    CSingleDocTemplate::SetDefaultTitle(CDocument* pDocument) の
       ENSURE(strDocName.LoadString(AFX_IDS_UNTITLED));
アプリケーション エラー
プロジェクトのプロパティ,「リソース」-「プリプロセッサの定義」に “_AFXDLL;” があったので削除.


2021/02/17
VC 7 以降に変換した段階で,ソースの「プリプロセッサの定義」が引き継がれてしまう?
そのため,それは削除した方が良さそう.
VC 8 「ソース」のプリプロセッサの定義
* 間違ってプロジェクトの「プリプロセッサの定義」を削除しないこと.
VC 12 LNK1104 , VC 14.2 LNK2019

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

NICONI SOLID

ニコニ立体で表示可能な OBJ のメモ
データは 100x100x100 の立方体.Cube_obj.zip
いろいろいじってたら,立方体があるのはわかる様になった.
(背景の色を指定して,スケーリングを 0.1 ,視野角を大きく)

どうも,大きすぎる様なので -1 ~ 1 の範囲の立方体に編集.Cube_2.zip

テクスチャがうまく張り付かないので,OBJ や MTL をいろいろ編集…
MTL 内の newmtl とそれに続く名称との間のスペースが 1 つでないとうまくないみたい.Cube_3.zip


はっきりわからないが,4 を超える多角形の面が表示できない?


i_S_asZ

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

Win7 srv 2021

VirtualPC の Win 7 で,
ログの名前: System
ソース: srv
日付: 2014/04/25 10:33:13
イベント ID: 2021
タスクのカテゴリ: なし
レベル: 警告
キーワード: クラシック
ユーザー: N/A
コンピューター: DevS
説明:
サーバーは 60 秒間に 1 回、作業項目を割り当てることができませんでした。

検索すると,イベント ID 2021 およびイベント ID 2022 のトラブルシューティング方法
メモリを 512 M だったのを 1024 に.
同じ様な状況下で 2021 は出ていないので,ひとまず様子見.


2014/05/22 追記
頻度はかなり減ったが,5/19 ~ 5/21 で何度かログが残っている.

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

VC 11 , 12

AtlGetCommCtrlVersion が,GetCommCtrlVersion になっている.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h 7505:
   inline HRESULT AtlGetCommCtrlVersion(
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc\winutil.cpp 243:
   HRESULT GetCommCtrlVersion(


VC 12 の標準のインストールでは MBCS.exe が作成できない.
MSDN マルチバイト文字セット (MBCS) のサポート


—— ビルド開始: プロジェクト:ccVer, 構成:Debug Win32 ——
ccVer.cpp
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
c:\program files\windows kits\8.1\include\um\winnt.h(340):
  error C2146: 構文エラー : ‘;’ が、識別子 ‘PVOID64’ の前に必要です。
c:\program files\windows kits\8.1\include\um\winnt.h(340):
  error C4430: 型指定子がありません – int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
c:\program files\windows kits\8.1\include\um\winnt.h(12333):
  error C2146: 構文エラー : ‘;’ が、識別子 ‘Buffer’ の前に必要です。
c:\program files\windows kits\8.1\include\um\winnt.h(12333):
  error C4430: 型指定子がありません – int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
DX90SDK\Include が含まれていたのが原因.


c:\program files\microsoft visual studio 12.0\vc\include\xtgmath.h(206):
  warning C4003: マクロ ‘round’ に指定された実引数の数が少なすぎます。
c:\program files\microsoft visual studio 12.0\vc\include\xtgmath.h(206):
  error C2059: 構文エラー : ‘(‘
c:\program files\microsoft visual studio 12.0\vc\include\xtgmath.h(206):
  error C2062: 型 ‘double’ は不要です。
c:\program files\microsoft visual studio 12.0\vc\include\xtgmath.h(224):
  fatal error C1070: ソース ファイル ‘c:\…\vc\include\xtgmath.h’ 中で #if と #endif が対応していません。
Scale.hxx 等に定義されている #define round(v,p) … が影響していると思われる.
C99 になったことによる影響?


_MSC_VER はソースの先頭でも定義されているが,_MFC_VER は Afx.h の後でないと正しく取れない?
  よく考えれば当然のこと?


MFC 11 で CFileStatus が変更された.

  MFC 10 では,
    struct CFileStatus
    {
      CTime m_ctime;          // creation date/time of file
      CTime m_mtime;          // last modification date/time of file
      CTime m_atime;          // last access date/time of file
      ULONGLONG m_size;       // logical size of file in bytes
      BYTE m_attribute;       // logical OR of CFile::Attribute enum values
      BYTE _m_padding;        // pad the structure to a WORD
      TCHAR m_szFullName[_MAX_PATH]; // absolute path name
    #ifdef _DEBUG
      void Dump(CDumpContext& dc) const;
    #endif
    };

  MFC 11
    struct CFileStatus
    {
      CTime m_ctime;          // creation date/time of file
      CTime m_mtime;          // last modification date/time of file
      CTime m_atime;          // last access date/time of file
      ULONGLONG m_size;       // logical size of file in bytes
      DWORD m_attribute;      // logical OR of CFile::Attribute enum values
      TCHAR m_szFullName[_MAX_PATH]; // absolute path name
    #ifdef _DEBUG
      void Dump(CDumpContext& dc) const;
    #endif
    };

Visual Studio 2012 の更新プログラムの概要
Visual Studio 2012 の更新プログラム 4
Download Center Visual Studio 2012 Update 4


VC 2012 で作成した exe は,Win XP で実行できない?
Visual Studio 2012 で Windows XP をターゲットとする Visual C++ アプリケーションを作成する方法
Wikipedia Microsoft Visual C++


Visual Studio 2012 更新プログラム 4 の Visual C++ 再頒布可能パッケージ
Visual Studio 2013 の Visual C++ 再頒布可能パッケージ


プロジェクトをサーバにコピーして,VC 8 でビルドすると
  cl : コマンド ライン error D8022 : ‘\\devs\…\ArcEdit\Debug.080\RSP0000264523920.rsp’ を開けません
ローカルのプロジェクトは OK.
また,VC 6 なども C2039 はあるが,それなりに通る.
  \\devs\…\helpvsty.hxx(57) : error C2039: ‘AtlGetCommCtrlVersion’ :
     ‘`global namespace” のメンバではありません。
  これは,#define GetCommCtrlVersion AtlGetCommCtrlVersion としている所を,関数にして回避.
    … GetCommCtrlVersion (…) { return AtlGetCommCtrlVersion (…) ; }


VC 7.1 と VC 8 で,ネットワーク上のプロジェクトをビルドするとうまくない様なので,中間ファイルの指定を変更.
  .\$(ConfigurationName) を c:\Temp\$(ProjectName)\$(ConfigurationName) としてみた.
  これにより,rsp や obj などが C:\Temp\…\Debug\ 以下になりうまく通る.
検索すると,.\$(ConfigurationName)\ の様に最後に ‘\’ を付ければ通るとのこと.
  Error D8022 – can’t open .RSP file


2014/04/17
今までバックアップを取ったりする時に不要なファイルを消していたが,プロジェクトの設定などを変更してみた.
中間ディレクトリとデバッグ版の出力ディレクトリを c:\Temp\$(ProjectName)\$(ConfigurationName)\ に.
VC 10 以降で,フォールバック位置を指定(sdf , ipch の位置の指定).


VC 11 で,
  LibHasp_Windows.lib(wurzl37.obj) : error LNK2026: モジュールは SAFESEH イメージには安全ではありません。
    「リンカ」-「詳細設定」-「安全な…」の「はい (/SAFESEH)」をクリア.

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

C1083 msxml.dll

WinXP + VC 2005 環境のプロジェクトを,Win7 + VC 2008 でビルドすると,
\\devxp\…\xml_ms_.hxx(15) : fatal error C1083: タイプ ライブラリ ファイルを開けません。
‘msxml.dll’: No such file or directory
検索すると,
XML file parsing in Visual Studio 2008 & Windows 7


2014/08/19 追記
Win8 + VC 2012 でビルドすると
  \\DevS\…\Xml_MS_.hxx(329): error C2039: ‘CLSID_DOMDocument’ : ‘MSXML2’ のメンバーではありません。
これで良いのかはわかってないが,#define CLSID_DOMDocument CLSID_DOMDocument60 を追加.
  #if (_WIN32_WINNT >= 0x0600)
    #import <msxml6.dll> named_guids
    #define MSXML MSXML2
    #define CLSID_DOMDocument CLSID_DOMDocument60
  #else
    #import <msxml.dll> named_guids
  #endif
 
2019/06/29 Win10 VC 2005 で C1083 msxml.dll


2019/01 C++ と STL の範囲で書き直し

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

three.js

three.js の動作環境の作成のメモ
three.js の左の github から.
Usage の Download the minified library and …. の minified library を右クリックするなどしてダウンロード.
C:\Users\Public\Documents\WebGL\Three_js\three.min.js として保存.
This code creates a scene, …… in the document.body element. の下のスクリプトを Test3js.htm などとして保存.
その html の前の方と後ろの方を編集.
<!DOCTYPE html>
<html lang=”ja”>
<head><meta charset=”UTF-8″></head>
<body>
<script src=”three.min.js”> </script>
<script>
var camera, scene, renderer;

function init() {

renderer.render( scene, camera );
}

</script>
</body>
</html>


107SH で,192.168.x.x/Test/…/Test3js.htm にアクセスすると,

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

iPhone 3D – 5

110 ページまでやってのエラー.
/…/S_Wire/ApplicationEngine.cpp:57:14: Assigning to ‘ISurface *’ from incompatible type ‘Cone *’

/…/S_Wire/ApplicationEngine.cpp:62:14: Assigning to ‘ISurface *’ from incompatible type ‘MobiusStrip *’
  ParametricSurface.hpp の ParametricSurface の定義で public ISurface が抜けていた.


ApplicationEngine.cpp::: Reference to type ‘const std::vector’ could not bind to an rvalue of type ‘Visual *’
  どうも,107 ページで与えているのが Visual になってるが,vector<Visual> となる様に変更.
  void ApplicationEngine::Render () const {
    vector<Visual> visuals ;
    Visual visual ;
    visual.Color = m_Spinning ? vec3(1,1,1) : vec3(0,1,1) ;
    visual.LowerLeft = ivec2(0,48) ;
    visual.ViewportSize = ivec2(320,432) ;
    visual.Orientation = m_Orientation ;
  // m_RenderingEngine->Render(&visual) ;
    visuals.push_back(visual) ;
    m_RenderingEngine->Render(visuals) ;
  }


今度はリンクエラー   “ES1::CreateRenderingEngine()”, referenced from:
これは,タイプミス.e が抜けている.
IRenderingEngine* CreateRenderingEngine () {
return new RenderingEngine() ;
}

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

OS X 10.9.2

それ程困っていたわけではないが,Mavericks に上げてから「メール」で変な現象があった.
「日付で並べ替え」,「最も新しいメッセージを最上位」としているのに,
  一部のメールが下の方になる.
  そのリストに対応するメールの内容が合っていない.


OS X のアップデートがあり,その内容で該当しそうな項目がある.

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

頂点法線の計算

今まで GL_FLAT で処理していたので面の法線を利用していた.
そのため,既に法線の情報が設定されたデータでうまく表示できてないものがあった.
GL_FLAT での表示
glShadeModel(GL_SMOOTH) として,頂点に対して法線を設定することによりそれなりに表示する様にはなった.
GL_SMOOTH での表示


これらのデータの様に,頂点の法線を求める必要が出てきた.
ここ(スムージング角度)を参考にさせてもらい,何とかそれなりに表示できる様になった.
頂点の法線ベクトルを利用した表示


gonsfnc.hxx

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

iPhone 3D – 4

だいぶ時間が経ったが,
81 ページまでやっていて Cone が表示されない.

モデルビュー行列の設定で,”Modelview” が “ModelView” と大文字のタイプミス.

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

GeForce GT 630 に変更

T5400 のグラフィックボードを Quadro FX 570 から GeForce GT 630 に変更.
サウンドデバイスが見つからない状態になり,音が出なくなった.
セットアップ時だったか,ボードのサウンド機能を利用する様な表示があった様な?
音が出ないことはそれほど問題ないと思っていたが,Skype などが出来ない.
それとは別の要因だが CD ドライブが開かなくなってしまった.以前から調子が悪かった.
グラフィックのドライバを何とか入れ直し,設定などを見たが,特に設定はなさそう.
検索すると,BIOS の設定で回避できるとある.

Auto から On にして,再起動.
すると,音は出る様になったが,表示が…

さらに再起動して,それなりの動作となった.

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

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=() が定義されていません。
 
クラスを引数とする代入演算子を定義している場合は、コンパイラはデフォルトの代入演算子を生成しません。
代入演算子は、各クラスに対して明示的に定義しなければなりません。代入演算子は派生クラスに継承されません。

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

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 で試すには,コントロールの挿入のために開発タブを有効にする必要がある.

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

String_Split

    MB MFC MB STL WC MFC WC STL
99103040 5714 0 20 0 70
99103036 14192 10 130 10 380
99103032 27636 10 400 20 1400
99103051 41128 20 900 20 3200
99103026 65388 50 2400 50 7200

単位は m sec

表では MFC と表現しているが,実際は CStringArray を利用している程度.
ちょっと意外だったのが,STL のコードで,UNICODE 版が MBCS 版の 3 倍以上になってしまっている.


STL を利用しているコードは以下の通り.
std::vector<tstring> String_Split (const tstring& str_,LPCTSTR sp=_T(" \r\n"))
{
  std::vector<tstring> strAry ;
  tstring str = str_ ;
  {
    tstring::size_type spPos = tstring::npos ;
    while ((spPos=::String_FindFirstOf(str,sp)) != tstring::npos) {
      if (str.empty()) { break ; }
      TCHAR fc = str[0] ;
      if (fc == _T(‘\"’) || fc == _T(‘\”)) { // "—" or ‘—‘
        if ((spPos=::String__Find(str,fc,1)) == tstring::npos) {
          break ;
          }
        if ((spPos = ::String_FindFirstOf(str,sp,spPos)) == tstring::npos) {
          break ;
          }
        }
      tstring splitS = str.substr(0,spPos) ;
      strAry.push_back(splitS) ;
      str = str.substr(spPos+1) ;
      if (str.empty()) { break ; }
      }
    if (!str.empty()) {
      strAry.push_back(str) ;
      }
    }
  return strAry ;
  }


String_Join も同様だが,MFC 版 StringArrayToLine1 の 1 割程度なので,このままとする.
MFC 版 StringArrayToString は十分速い.


StrAryFn.hxx

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

3DS

3DS 出力で正しくないのが生成されたので,バイナリを解析した時のメモ


http://www.dcs.ed.ac.uk/home/mxr/gfx/3d/3DS.spec
http://www.martinreddy.net/gfx/3d/3DS.spec

Chunk ID 2  
データ長 4 この次のデータの長さ + 6
データ    

 
4D4D
  3D3D
    AFFF
      A000        名称
      A020   15
        0011  9    RGB
    AFFF 
    …
    4000          名称
      4100    
        4110      頂点情報 ( WORD 頂点数 , [ float x , y , z ] )
        4140      テクスチャ ( WORD 点数 , [ float x , y ] )
        4160      
        4120      面情報 ( WORD 面数 , [ WORD 3 頂点のインデックス , WORD 面の情報 ] )
          4130    材質名 , WORD 面数 , [ WORD 面のインデックス ]
          4130        
          …
    B000      
      …


頂点数が WORD を超えていたのが原因.
PgonsA_To3DS の objIs1==TRUE で,vp3Ary.GetCount() >= 0x10000 の時,PgonsA_To3DS (…,FALSE,…) .

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

ダイアログでのEyeChange

CStatic 内に表示するには,this ではなく &m_Image とする.
// u_Zoom. Init(this,&u_Scale) ;
   u_Zoom. Init(&m_Image,&u_Scale) ;
// u_EyeChg. Init(&m_Image) ;
   u_EyeChg. Init(this) ;
   Eye eye(Eye::StdR) ;
   u_EyeChg. SetEye (eye) ;
   u_EyeChg. SetExtent(doc->PartsA_.GetExtent()) ;
   u_EyeChg. Set_MouseEyeChange(TRUE) ;
// u_Zoom. Init(this,&u_Scale,&u_EyeChg) ;
   u_Zoom. Init(&m_Image,&u_Scale,&u_EyeChg) ;
MButton , MouseWheel では,InvalidateRect などが必要.
 void CAboutDlg::OnMButtonDown(UINT nFlags, CPoint point)
 {
   if (u_EyeChg. Event(GetCurrentMessage())) { return ; }
   if (u_Zoom. Event(GetCurrentMessage())) { InvalidateRect(NULL) ; return ; }
   CDialog::OnMButtonDown(nFlags, point);
  }
 BOOL CAboutDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
   if (u_EyeChg. Event(GetCurrentMessage())) { return TRUE ; }
   if (u_Zoom. Event(GetCurrentMessage())) { InvalidateRect(NULL) ; return TRUE ; }
   return CDialog::OnMouseWheel(nFlags, zDelta, pt);
  }

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