ホーム » 2012
年別アーカイブ: 2012
RegSvr32 で ocx などの登録
ocx や dll の登録は,「管理者として実行」した「コマンド プロンプト」で次の様にを入力する.
RegSvr32 c:\~\AcListFF.ocx
Vista 以降では管理者として実行していないと,
[Window Title]
RegSvr32
[Content]
モジュール “C:\Users\Iwao\Desktop\Temp\AcListFF.ocx” は読み込まれましたが、DllRegisterServer への呼び出しはエラー コード 0x80040200 により失敗しました。
この問題の詳細については、エラー コードを検索語として入力してオンラインで検索してください。
[OK]
次の様に,「コマンド プロンプト」を「管理者として実行」する.
そして,
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
---------------------------
FBX SDK – 2
2005.08 では,調べたかった事(FBX SDK のコンバート動作)がわからなかったので,今度は 2005.12.1 を選択.
{
KFbxSdkManager* pSdkManager = NULL ;
KFbxScene* pScene = NULL ;
if (!::InitializeSdkObjects(pSdkManager,pScene)) { return -1 ; }
CString fileFBX = _T(“Test.fbx”) ;
CString pathEXE = ::GetModuleFileName() ;
CString pathFBX = ::GetFileDir(pathEXE) + _T(“\\”) + fileFBX ;
if (::LoadScene(pSdkManager,pScene,pathFBX)) {
CString pathOTH = pathFBX + _T(“.3ds”) ;
::SaveScene(pSdkManager,pScene,pathOTH) ; // ,KFbxExporter::e3D_STUDIO_3DS) ;
}
::DestroySdkObjects(pSdkManager) ;
}
これをコンソールベースで作成,実行すると,3ds のファイルはできた.
dae はデータによるのかどうかわからないがアプリケーションエラーとなる.
dae ファイルはできているがモデルはなさそう.
ダイアログベースに改良.ファイルをドロップすると以下の変換が通る.
BOOL CFBXtoDlg::Convert(LPCTSTR filePath)
{
KFbxSdkManager* pSdkManager = NULL ;
KFbxScene* pScene = NULL ;
if (!::InitializeSdkObjects(pSdkManager,pScene)) { return FALSE ; }
CString pathSrc = filePath ;
if (::LoadScene(pSdkManager,pScene,pathSrc)) {
CString path3DS = pathSrc + _T(“.3ds”) ;
CString pathOBJ = pathSrc + _T(“.obj”) ;
CString pathDAE = pathSrc + _T(“.dae”) ;
::SaveScene(pSdkManager,pScene,path3DS) ;
::SaveScene(pSdkManager,pScene,pathOBJ) ;
::SaveScene(pSdkManager,pScene,pathDAE) ;
}
::DestroySdkObjects(pSdkManager) ;
return TRUE ;
}
2005.08 の example で出来た fbx などをドロップして変換.
ExportScene03.fbx は,3ds への出力でアプリケーションエラー.
FBXto の VC 6 プロジェクトを VC 8 に.単純に変換して,デバッグ版でビルド,実行すると,
—————————
FBXto.exe – コンポーネントが見つかりません
—————————
MSVCR80.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
—————————
OK
—————————
リリース版では,実行可能.
2012/12/10 追記
根本的な解決にはなってないが,2011.3.1 SDK に変更して対応.
FBXto.2011.3.1.zip
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*) を呼出した時.
LCMapString , _tmain , setlocale
_mbctombb を呼出しているコードがあり,その対象の箇所は以下の様なコードで置換え可能とわかった.
::LCMapString(::GetUserDefaultLCID(),LCMAP_FULLWIDTH,str,-1,newStr..)
LCMapString の動作をコンソール AP として確認していて,
2 つ目の引数 dwMapFlags で LCMAP_SIMPLIFIED_CHINESE を見つけた.
ちょっと忙しいので詳細は後で,
_tsetlocale(LC_ALL,_T(“”)) を呼出してなかったため,UNICODE.exe でコンソールに何も表示されなかった.
zae 出力
3D データを zae として保存.
S_asZ.2012.11.20.zip
i_S_asZ 1.20.2013.2
DelFileE でフォルダの削除
SendMail での DelFileE で,フォルダが削除できないことがあった.
SendMail や DelFileE は,まだ修正できないが,Send3D::CopyFile で確認.
DelFileE に登録しているフォルダ名が,”\” で終わっているコードが幾つかありそう.
2012/11/29 DelFileE 修正済
2014/12/17 MFC を使用していない方法で書き直し.
delff_e.hxx
Shell を利用した zip
以下のページを参考にさせてもらって,zip を扱うクラスを作成した.
http://eternalwindows.jp/installer/zip/zip01.html
http://www.softist.com/programming/shell32-zip/shell32-zip.htm
但し,zip , CopyHere で検索すると以下が見つかり,本当はうまくないものと思われる.
CopyHere メソッドから Zip ファイルを処理することはできません
ついに解禁!.NET で ZIP 制御
ZipFold.2012.11.19.zip
i_ZipFold 1.0.2013.1
i_Tools Vector
この exe では,パスワードに対応してません.エラーになります.
2022/01/06
i_Zip.hxx
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 のコーディング プラクティス
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) が定義されてなかったためだが,未だによくわかってない.
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
iPhone 3D
「iPhone 3D プログラミング」を読みながら,
29 ページまででビルドすると,
…/HelloArrow/IRenderingEngine.hpp:26:2: Unknown type name ‘virtual’
main.m -> main.mm
実行時,EXC_BAD_ACCESS (code=1, address= 0x60000008)
P.25 GLView.mm initWithFrame
displayLink = [CADisplayLink … @selector(drawView:)] ;
”:” が抜けていた.
それでもまだ,三角形は表示されてない.
続きは後日やる予定.
2012/10/08 追記
三角形は表示されず,実行するとピンクの状態.
デバッガで追いかけると,それなりにコードは通っている.
原因は, RenderingEngine1::Initialize の glBindFramebufferOES が GL_FRAMEBUFFER_OES でなかった.
やっと表示されたが,形状が違う.
これは頂点データの定義のタイプミスなのですぐわかった.
基本的な部分がわかってないので,だいぶ時間がかかってしまった.
Win7 が勝手に起動
以前にも似た様な現象で悩まされたが,…
この時は,
Vista プレインストールのディスクが壊れたので,Win 7 に.
Win 7 としての使用を始めた時からの現象で,14:00 頃の決まった時間に起動された.
ここに書かれていることがそのまま当てはまったので,その内容で解決した.
今回はちょっと違う.
起動される時間が不定期.0:00 頃落として,20~30 後や,17:00 頃など.
休止状態にして,一度落ちてすぐ起動することもあり.
現象は最近 1 週間位.
デバイスや AP をインストールした記憶はないが,Update はあり得る.
一先ず,デバイスマネージャの NIC の「…スタンバイ状態を解除…」のチェックを外した.
それとは異なる会社の Win XP
時間がなかったのであまり確認できなかったが,…
「休止状態」にしても,電源が落ちないで再起動となってしまう.
こっちは NIC の関係か?
2012/09/27 追記
Win 7 の方は,「デバイスマネージャ」の設定を変更してから,今の所,勝手には起動していない.
2012/10/09 追記
先日 10/5 会社に行った時,特に設定変更してないのに「休止状態」にできた.
Cocoa Programming for Mac OS X 3 – 3
156 ページのコードを入力してビルドすると,
int row = [a indexOfObjectIdenticalTo:p] ;
/…/〜.m:145:12: Implicit conversion loses integer precision: ‘NSUInteger’ (aka ‘unsigned long’) to ‘int’
最近は,C++ ばかりだったので int() でくくるとエラー.
int row = int([a indexOfObjectIdenticalTo:p]) ;
C の (int) とすれば OK.
int row = (int)[a indexOfObjectIdenticalTo:p] ;
indexOfObjectIdenticalTo を右クリックして「Jump to Definition」
- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject;
さらに NSUInteger に飛ぶと,
#if __LP64__ || (…) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
ソースの拡張子を m から mm に変更することによって,int ( … ) も可能となるみたい.
Wi-Fi スポット設定
ソフトバンク Wi-Fi スポット利用の申し込みをした.
設定方法を検索すると「ソフトバンク Wi-Fi スポット設定ソフトウェア」というのがあるらしい.
さらに検索すると,X02T で My SoftBank からダウンロードする必要があることがわかった.
が, My SoftBank のパスワードがわからない.
過去のメールを探して,ダウンロード,インストールまでは特に問題なくいった.
手動で,\Program Files\WISPrClient\WISPrClient.exe へのショートカットを作成.
あとは,WISPrClient を起動して設定方法のページの通りに設定.
再現性はないが,家の中での Wi-Fi 設定が効かなくなった.X02T の再起動で直った.
2012/09/02 追記
近くの Wi-Fi スポットで動作確認してみたが,…
何かうまく動作してない?
2012/09/15 追記
出かけた帰り,SoftBank ショップに寄っていろいろと教えて頂いた.
結局,アクセスポイント?が 0001softbank ではなく FON を使用することで無事接続できた.
手順が間違っていたのではなさそう.
ショップの担当して頂いた方,どうもありがとうございました.
Mountain Lion ダウンロードとインストール
コンテンツコードは先日取得してあったので,ダウンロードを開始してみた.
30 分位だったか?
ダウンロードが終わるとすぐ,インストールの開始画面となり,そこで止めている状態.
Install OS X Mountain Lion.app のバックアップを取ろうと思って気が付いたことが,
~.app て,Windows などから見るとフォルダだった?
インストール開始直後,35 分位の表示だったと思うが,結局 1 時間程かかった.
2012/09/02 追記
Xcode 4.3 を利用しようとすると,
4.4 が必要なのか?
4.4 にアップデートして,先週やってた exe がビルド,実行できることは確認した.
Cocoa Programming for Mac OS X 3 – 2
「6.7 チャレンジ:デリゲートを作成する」で,追加したクラスを結びつける方法がわからず.
休日のみで身に付けようとすると,ちょっときつい(完全に忘れてしまってる).
ダイアログ上のコントロールとコードを結びつけるのは理解できてるつもり.
VC の「クラスウィザード」などと同じように考えれば良いと思われる.
NSObject のサブクラスがまだ理解できてない.
本で書かれている場所は,91 ページ 「5.3 xib ファイルのレイアウトを行う」.
参考にさせてもらったページ
Cocoa Programming: Helper Objects – Challenge: Make a Delegate