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

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

2025年6月
1234567
891011121314
15161718192021
22232425262728
2930  

カテゴリー

アーカイブ

ブログ統計情報

  • 116,207 アクセス


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


Regsvr32には32ビット版と64ビット版がある
Windows7などでDLL/OCXのレジストリ登録を自動化する
Windows 10 / 11(64bit)で32bitのOCXを登録

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.

001SH との接続

001SH と PC を接続しようとして,USB ケーブル(IUD-O012K)を購入.
シャープの「ソフトバンクダウンロード一覧」のページから,「ソフトバンクユーティリティーソフトを利用する」を選択.
そこから飛んで,ソフトバンクユーティリティーソフトのダウンロードページへ.
ダウンロードして,普通にセットアップ.
PC と 001SH をケーブルで接続.
001SH のドライバが認識されず?デバイスマネージャで見ると,001SH と表示があるが黄色いアイコン.
USB ドライバが必要と言うのはわかるが,方法が不明.
検索するとここが見つかり,ユーティリティーソフトウェアに含まれていると読み取れる.


購入した店に行って調べてもらうと,
シャープの「ソフトバンクダウンロード一覧」のページは縦に長く,真ん中より下の位にあるとのこと.
「同意する」として機種選択すると「ダウンロード」のボタンが表示される動作.
001SH USB Driver
このドライバのダウンロードする場所が私には見つけることができませんでした.


ビックカメラの対応してくださった店員さんと,157 の電話の方,ありがとうございました.

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

iShelExt.dll ダウン

explorer.exe の 0x000000018001907b (iShelExt.dll) でハンドルされていない例外が発生しました:
0xC0000005: 場所 0x00000000000000b0 を読み込み中にアクセス違反が発生しました。

コードを見たが,原因が特定できなかったのでハードコピー.


同様に MShellE.dll でも
explorer.exe の 0x0000000180061830 (MShellE.dll) でハンドルされていない例外が発生しました:
0xC0000005: 場所 0xffffffffffffffff を読み込み中にアクセス違反が発生しました。

これもよくわからない.


2012/08/10 追記
explorer.exe の 0x000000018003938e (MShellE.dll) でハンドルされていない例外が発生しました:
0xC0000005: 場所 0xffffffffffffffff を読み込み中にアクセス違反が発生しました。


2012/08/30 追記
explorer.exe の 0x0000000180018e30 (iShelExt.dll) でハンドルされていない例外が発生しました:
0xC0000005: 場所 0x00000000000000c0 を読み込み中にアクセス違反が発生しました。


2012/09/25 追記
Cache のインデックスが 2 ,Cache はクリアされている.


2012/09/27 追記
2 つのスレッドから Profile::GetInt 内を指した状態で止まっている.


2012/10/08 追記
IL_Env_GetStr など,static で確保しているのが原因か?


2012/10/11 追記
やはり,static Env ?


2012/11/12 追記
DocIB::GetBitmap に以下を追加して排他管理する様に変更してみた.
  _MutexS_ mt(FALSE,_T(“DocIB::GetBitmap”)) ;
  MutexS m(&mt) ;
また,Mutex の動作が機能する様にするためには,アプリケーションクラスのヘッダで以下が必要.
  #include AfxMT.h

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

MFC などと iOS のパーツ

目的が似ていると思われるもの

CStatic   UIView
CHtmlView   UIWebView
MSXML.dll   NSXMLParser
レジストリ   NSUserDefault
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Xcode での設定?

ヘッダなどのインクルードパスの設定.
 プロジェクトを選択して,Search Path に Header と Library の設定がある.
 VC 6 などの様な,「ツール」−「オプション」−「ディレクトリ」タブにある共通の設定の有無や方法は不明.
Xcode Search Path


デバッグ時のブレイクポイントの設定やステップ実行など.
 ソースの左の方の行番号付近のクリック.
 「fn」+F6 , F7 , F8 はまだいいが,継続の実行がちょっといまいち.
    「control」+「command」+「Y」

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

Blenderの利用ガイド

Blender 2.6x で,日本語ファイル名などが文字化けしていたので.
Blenderの利用ガイド


2012/07/26 追記
動作の詳細はまだ不明だか,日本語名などを含むファイル名の保存やエクスポートでうまく処理されないことがあるみたい.
例えば,stl をインポートして,それをそのまま dae でエクスポートした時はうまく読めない.
geometry の id などにそれを利用している様,Blender のツリーの表示で Rename すれば OK.

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

定義済みマクロ

__GNUC__
__APPLE_CC__
Hello, World!
以下のコードで確認.


#include <iostream>
int main(int argc, const char * argv[])
{
#if defined(__GNUC__)
  printf(“__GNUC__\n”) ;
#endif
#if defined(__APPLE_CPP__)
  printf(“__APPLE_CPP__\n”) ;
#endif
#if defined(__APPLE_CC__)
  printf(“__APPLE_CC__\n”) ;
#endif
#if defined(__MACOS_CLASSIC__)
  printf(“__MACOS_CLASSIC__\n”) ;
#endif
  // insert code here…
  std::cout << “Hello, World!\n”;
  return 0;
  }


???/MacOSX.platform/Developer/SDKs/MaxOSX10.7.sdk/usr/include/TargetConditionals.h より
cpp -dM /dev/null

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

LOG_PBH::Term

「LOG_PBH::Term が呼ばれる前に Init が呼ばれた」
以下の様なコードで,PBH::SetDefaultPenBrush() が呼ばれていないと,デバッグウィンドウに表示される.
  {
    LOGPEN lp ;
    LOGBRUSH lb ;
    PBH::GetHatchPenBrush(pDC,GetPBH(), &lp,&lb) ;
    CPen pen ; pen.CreatePenIndirect(&lp) ;
    CPen* oldPen = pDC->SelectObject(&pen) ;
    CBrush brush ; brush.CreateBrushIndirect(&lb) ;
    CBrush* oldBrush = pDC->SelectObject(&brush) ;
    Parts::Draw(pDC,prj,scale) ;
    pDC->SelectObject(oldPen) ;
    pDC->SelectObject(oldBrush) ;
    PBH::SetDefaultPenBrush() ;
    }

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

VC 6 MFC でオートメーション利用

「Class Wizard」-「クラスの追加」-「タイプライブラリから」
タイプライブラリからのクラスの追加
InitInstance 内の追加のコード
  #ifdef _AFXDLL
    Enable3dControls();
  #else
    Enable3dControlsStatic();
  #endif

  {  // 利用をこのブロックにまとめてます
    AfxOleInit() ;
    IAsPln2D to2D ;
    if (!to2D.CreateDispatch(_T(“PAtoMHD.AsPln2D”))) {
      return FALSE ;
      }
    CString selFile = to2D.BrowseFile(_T(“.\\*.mhd”),_T(“mhd を選択してください”)) ;
    if (!selFile.IsEmpty()) {
      if (to2D.Load(selFile)) {
        to2D.Save(selFile+_T(“.svg”)) ;
        }
      }
    return FALSE ;
    }
  CTestDlg dlg;
  …


#import を利用する方法
  アプリケーションクラスのソースに
    #import “C:\…\SVG\PAtoMHD\Release\PAtoMHD.tlb”
  InitInstance に
  {
    AfxOleInit() ;
    PAtoMHD::IAsPln2DPtr to2D ;
    if (to2D.CreateInstance(__uuidof(PAtoMHD::AsPln2D)) != S_OK) {
      return FALSE ;
      }
    CString selFile = LPCTSTR(to2D->BrowseFile(_T(“.\\*.mhd”),_T(“mhd を…”))) ;
    if (!selFile.IsEmpty()) {
      if (to2D->Load(LPCTSTR(selFile))) {
        to2D->Save(LPCTSTR(selFile+_T(“.svg”))) ;
        }
      }
    return FALSE ;
    }
CreateInstance の時の PAtoMHD::AsPln2D がわからなかった.
PAtoMHD::IAsPln2D としてしまっていた.


Dr. GUI、コンポーネント、COM、および ATL を使う

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

ipx , PartsA , PartsA_C3D

2012/04/25 以前の PartsA などの ipx の読込みは,CArchive::ReadString を利用していた.
今回,Parts ファミリのファイルアクセスは,LoadText ,SaveText に置き換える.


ReadString を利用していた時の動作
  PartsA_C3D::ImportTxt より PartsA::SerializeTxt が呼ばれる.
   PACnv3.exe!PartsA::SerializeTxt(CArchive & ar={…}) 行 464
   PACnv3.exe!PartsA::Serialize(CArchive & ar={…}) 行 361
   PACnv3.exe!PartsA_C3D::ImportTxt(… * pathName) 行 336
   PACnv3.exe!PartsA_C3D::Import(… * pathName) 行 137
   PACnv3.exe!CPACnv3Doc::OnOpenDocument(… * lpszPathName) 行 177
  PartsA_C3D::ImportTxt で,exe と ipx の種類により,ReadString で読める形式でコピーする.
   FileMBWC.hxx GetReadTextName により,
    UNICODE.exe の場合,UTF-16 のテキストファイルにコピーする.
  PartsA::Serialize を呼出す前には,BOM を読み飛ばした位置にポインタがある.
   FileMBWC.hxx SerializeTextBOM(ar) により,UNICODE.exe の場合に飛ばす.
  * PartsA_C3D を利用してない exe では,形式が異なるファイルは読み出せなかった.
    VxxxxV などの exe は,PartsA::Serialize としているのでこれにあたる.


ReadString を利用しない様にしたので,PartsA_C3D::ImportTxt は,シンプルになった.
  BOOL PartsA_C3D::ImportTxt (LPCTSTR pathName)
  {
    if (!PartsA::IsTextFile(pathName)) { return FALSE ; }
    CString str ;
    if (!::LoadText(pathName,str))   { return FALSE ; }
    return PartsA::ImportTxt(str) ;
    }

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

HTML の表示

SVG をダイアログ上に表示したくなったので,CHtmlView などを利用してみた.
Spy++ で見ると,クラス名が “Internet Explorer_Server” となる.
HtmlView.zip


SDI で CHtmlView を利用
1. AppWizard のステップ 6 で,CHtmlView を選択する.

2. ビューのソースの CXxxxView::OnInitialUpdate() を,適当なアドレスに修正する.
  Navigate2(_T(“https://mish.myds.me/wordpress/dev/“),NULL,NULL);


ダイアログで,WebBrowser Control を利用
1. プロジェクトにコンポーネントを追加する.

2. 追加したコントロールの変数を割り当てる(ここでは,m_WebBrowse とした).
3. OnInitDialog などで
 m_WebBrowse.Navigate(_T(“https://mish.myds.me/wordpress/dev/“),NULL,NULL,NULL,NULL) ;


ダイアログで,CHtmlView を利用
1. CHtmlView* の変数を定義する(ここでは,WebView とした).
2. OnInitDialog で
  CRect rect ;
  GetClientRect(&rect) ;
  rect.top = 25 ;
  CRuntimeClass* pClass= RUNTIME_CLASS(CHtmlView) ;
  WebView = (CHtmlView*)(pClass->CreateObject()) ;
  WebView->Create(NULL,NULL,WS_VISIBLE|WS_CHILD,rect,this,0,NULL) ;
  WebView->SendMessage(WM_INITIALUPDATE) ;
  WebView->Navigate(_T(“https://mish.myds.me/wordpress/dev/“)) ;

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