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
Objective-C
買った本を参考にしながら,NSArray を使用.
NSArray* ary = [NSArray arrayWithObject:[…],[…],…,nil] ;
と入力して,複数の要素を指定しているという様なエラー.
よーく確認すると,本の方は arrayWithObjects と最後に s が付いた複数指定のタイプ.
Xcode が補完してくれるのはいいが,間違って選択してエラーになると,原因を見つけるのがちょっと大変?
他にもタイマの利用で,タイマ処理関数名の直後の ” : ” も抜けていた.
[NSTimer scheduledTimerWithTimeInterval:0.05 target:self
selector:@selector(moveLabel:) userInfo:nil repeats:YES ] ;
Objective-C から C++ の呼び出し
先日作成した MemStat.hxx を「iOS」−「Single View Application」から利用してみた.
ViewController.m の拡張子を mm に変更.
ボタンと UITextView を貼付けて,変数を定義,ボタンの Action を追加.
以下はそれに対して,C++ の呼出しを加えたコード.
// ViewController.mm
#import “ViewController.h”
#include “MemStat.hxx” // これでいいの?
@interface ViewController ()
@end
@implementation ViewController
@synthesize TextView;
– (void)viewDidLoad
{
[super viewDidLoad];
{
MemoryStatus ms ;
NSString* str = [[NSString alloc]initWithFormat:@”%8.2f MB / %8.2f MB \n”,
ms.GetPhysFree()/1024/1024.,ms.GetPhysTotal()/1024/1024. ] ;
TextView.text = str ;
}
}
– (void)viewDidUnload
{
[self setTextView:nil];
[super viewDidUnload];
}
– (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
– (IBAction)Refresh:(id)sender {
{
MemoryStatus ms ;
NSString* str = [[NSString alloc]initWithFormat:@”%8.2f MB / %8.2f MB \n”,
ms.GetPhysFree()/1024/1024.,ms.GetPhysTotal()/1024/1024. ] ;
TextView.text = [TextView.text stringByAppendingString:str ] ;
}
}
@end
Magic Mouse 追加
「マルチタッチトラックパッド」は良く出来ているが,マウスカーソルの位置を操作するのがなかなか慣れず,Windows で使用している 5 ボタンマウスを USB 接続して凌いでた.
Magic Mouse の存在を知らなかったわけではなく,ちょっと投資が出来なかったのです.
それでやっと,Apple のショップで触って,購入しました.
接続にちょっとかかりましたが,…
(付属のマニュアルを読まないで接続しようとしたので.私みたいな老眼には,ちょっときついです)
接続できると,やっぱいいです.
キーボードはどうしたものか?
Blenderの利用ガイド
Blender 2.6x で,日本語ファイル名などが文字化けしていたので.
Blenderの利用ガイド
2012/07/26 追記
動作の詳細はまだ不明だか,日本語名などを含むファイル名の保存やエクスポートでうまく処理されないことがあるみたい.
例えば,stl をインポートして,それをそのまま dae でエクスポートした時はうまく読めない.
geometry の id などにそれを利用している様,Blender のツリーの表示で Rename すれば OK.
MemStat.hxx
Xcode や VC , W Mobile で可能な様にコードを書いてみた.
#ifndef MemStat_hxx
#define MemStat_hxx
//
#ifdef _WIN32
typedef __int64 i64 ;
typedef unsigned __int64 ui64 ;
#else
typedef long long i64 ;
typedef unsigned long long ui64 ;
#endif
//
#ifdef __APPLE_CC__
#include <mach/mach.h>
#endif
#ifdef _WIN32
#include <Windows.h>
#include <WinBase.h>
#endif
//
class MemoryStatus {
public:
…
} ;
//
…
{
P_Free = P_Total = 0 ;
#ifdef __APPLE_CC__
{
unsigned int count = 0 ;
mach_port_t host_port = ::mach_host_self() ;
host_basic_info_data_t hb_info;
{
count = HOST_BASIC_INFO_COUNT ;
::host_info(host_port,HOST_BASIC_INFO,(host_info_t)&hb_info,&count) ;
}
vm_statistics_data_t vm_info;
{
count = HOST_VM_INFO_COUNT;
::host_statistics(host_port,HOST_VM_INFO,(host_info_t)&vm_info,&count) ;
}
P_Free = vm_info.free_count * vm_page_size ;
P_Total = hb_info.max_mem ;
}
#endif
#ifdef _WIN32
#if !defined(_WIN32_WCE) && (_MFC_VER >= 0x700)
{
MEMORYSTATUSEX memStat ;
memset(&memStat,0,sizeof(MEMORYSTATUSEX)) ;
memStat.dwLength= sizeof(MEMORYSTATUSEX) ;
::GlobalMemoryStatusEx(&memStat) ;
P_Free = memStat.ullAvailPhys ;
P_Total = memStat.ullTotalPhys ;
}
#else
{
MEMORYSTATUS memStat ;
memset(&memStat,0,sizeof(MEMORYSTATUS)) ;
memStat.dwLength= sizeof(MEMORYSTATUS) ;
::GlobalMemoryStatus(&memStat) ;
P_Free = memStat.dwAvailPhys ;
P_Total = memStat.dwTotalPhys ;
}
#endif
#endif
}
//
#endif
ファイルは,UTF-8 と言うか,シフトJIS の設定で,7 bit の範囲の文字のみ使用.
改行は,CR+LF としている.
定義済みマクロ
__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
utf-8 だと…
Xcode でのファイルが UTF-8 だったのでそれを含む文字列での動作を調べてみた.
データは半角”abc”,全角”ABC”,半角”アイウ”,全角”アイウ”
Xcode で以下のコードを書いたので,このソースファイルの形式は,UTF-8.
#include <iostream>
int main(int argc, const char * argv[])
{
char abc[] = “abc” ;
std::cout << strlen(abc) << “\t” << abc << “\n” ;
char ABC[] = “ABC” ;
std::cout << strlen(ABC) << “\t” << ABC << “\n” ;
char aiu[] = “アイウ” ;
std::cout << strlen(aiu) << “\t” << aiu << “\n” ;
char AIU[] = “アイウ” ;
std::cout << strlen(AIU) << “\t” << AIU << “\n” ;
return 0;
}
Xcode
3 abc
9 ABC
9 アイウ
9 アイウ
VC 6 MBCS
3 abc
6 ABC
3 アイウ
6 アイウ
VC 6 UNICODE
3 abc
3 ABC
3 アイウ
3 アイウ
VC 6 でのコードは,tchar.h を利用して以下の様に書き直している.
また,ファイル形式はシフトJIS.
#include <iostream>
#include <tchar.h>
#ifdef _UNICODE
#define tcout wcout
#else
#define tcout cout
#endif
int _tmain(int argc, const TCHAR * argv[])
{
_tsetlocale(LC_ALL, _T(“”)) ;
TCHAR abc[] = _T(“abc”) ;
std::tcout << _tcslen(abc) << _T(“\t”) << abc << _T(“\n”) ;
TCHAR ABC[] = _T(“ABC”) ;
std::tcout << _tcslen(ABC) << _T(“\t”) << ABC << _T(“\n”) ;
TCHAR aiu[] = _T(“アイウ”) ;
std::tcout << _tcslen(aiu) << _T(“\t”) << aiu << _T(“\n”) ;
TCHAR AIU[] = _T(“アイウ”) ;
std::tcout << _tcslen(AIU) << _T(“\t”) << AIU << _T(“\n”) ;
return 0;
}
Mac で Windows の…
Windows の「タスクマネージャ」の様なの.
「アプリケーション」ー「ユーティリティ」ー「アクティビティモニタ」.
Print Screen
command+shift+3 , 4 , control+3
VC 6 では,シフトJIS のみの扱い
詳しく調べてはないが,Xcode は UTF-8
ビルドなどでも,コード内のシフトJIS 部分が正しく処理されない.
コード部分では 0x7f までの範囲とすべきか?
他の設定変更した部分
「ことえり環境設定」ー「入力文字」を使いやすい様に設定.
「システム環境設定」ー「言語とテキスト」ー「入力ソース」ー「半角カタカナ」にチェック.
Xcode 4.3.2
日本語に翻訳されたiOSのドキュメント
初めての iOS アプリケーション
ここを参考にサンプルを書いていて,
「View」ー「Utilities」ー「Show Object Library」 | VC 6 などのコントロールにあたる |
「View」ー「Utilities」ー「Show Attribute Inspector」 | コントロールのプロパティ |
Xcode の設定で,
「Xcode」ー「Preferences…」ー「Text Editing」ー「Indentation」ー「Prefer Indent using」を「Tabs」に.
Class Wizard にあたる部分の使い方がまだよくわからない.
WM PowerToys
Windows Mobile Developer Power Toys
WM でコマンドプロンプトが利用できるとあったのでやってみたが... NG.
この人と同じ様な現象.
console.dll が影響している?らしい.
エミュレータだとこんな感じ.
他に,Remote Display もやってみたが,うまくいかず.
MyMobiler ではうまくいった.
Remote Display でさらに調べてると,cerdisp2.exe を X02T に入れれば良さそうだったが,どれかわからず.
ここを参考に ActiveSync_remote_Display\devices\wce400\armv4t\* を X02T にコピーして,実行でうまくいった.
C1083
—— ビルド開始 : プロジェクト : CalAxByC, 構成 : Debug Win32 ——
コンパイルしています…
StdAfx.cpp
c1xx : fatal error C1083: コンパイラの中間生成物 ファイルを開けません。’ .\Debug.070/CalAxByC.pch’: No such file or directory
CalAxByC – エラー 1、警告 0
———————- 終了 ———————-
ビルド : 0 正常終了、1 失敗、0 スキップ
出力ディレクトリなどの指定で .\$(ConfigurationName).070 の前にスペースが入っていた.
「UNICODE 文字セットを使用する」にすると,
—— ビルド開始 : プロジェクト : CalAxByC, 構成 : Debug Win32 ——
コンパイルしています…
CalAxByC.cpp
リンクしています…
LINK : warning LNK4075: /EDITANDCONTINUE は /INCREMENTAL:NO の指定によって無視されます。
msvcrtd.lib(wcrtexew.obj) : error LNK2019: 未解決の外部シンボル _wWinMain@16 が関数 _wWinMainCRTStartup で参照されました。
.\Debug.070/CalAxByC.exe : fatal error LNK1120: 外部参照 1 が未解決です。
CalAxByC – エラー 2、警告 1
———————- 終了 ———————-
ビルド : 0 正常終了、1 失敗、0 スキップ
この対応方法は vcproj を編集.
WM 5 版 ColorHSV クラステスト
zip 内の構成で,\\T54W7U64\Public\Documents\Temp\WM_Card にファイルを置いている.
WM_Card.2012.06.29.zip
VS 2005 の「ツール」-「デバイス エミュレータ マネージャ」を起動.
デバイスを選択して「接続」.
デバイス エミュレータの「ファイル」-「構成」で,「共有フォルダ」を指定.
デバイスの「ファイル エクスプローラ」で対象のフォルダに移動して起動.
Windows Mobile 用修正
Windows Mobile プロジェクトで利用した場合のエラー.
但し,今は 2012.07 の関係があるため _CE フォルダを作成してそれを利用している.
C:\…\HelpAPI.hxx(28) : error C2660: ‘GetLongPathName’ : 関数に 3 個の引数を指定できません。
C:\…\HelpAPI.hxx(58) : error C2660: ‘GetComputerName’ : 関数に 2 個の引数を指定できません。
C:\…\HelpAPI.hxx(76) : error C2660: ‘GetUserName’ : 関数に 2 個の引数を指定できません。
C:\…\HelpAPI.hxx(106) : error C2660: ‘GetCurrentDirectory’ : 関数に 2 個の引数を指定できません。
C:\…\HelpAPI.hxx(121) : error C2660: ‘GetFullPathNameW’ : 関数に 4 個の引数を指定できません。
機能としてなさそう.関数を _WIN32_WCE で無効に.
c:\…\CRT_MBWC.hxx(113) : error C3861: ‘_tcsncat_s’: 識別子が見つかりませんでした
c:\…\CRT_MBWC.hxx(144) : error C3861: ‘_vstprintf_s’: 識別子が見つかりませんでした
c:\…\CRT_MBWC.hxx(168) : error C3861: ‘_vstprintf_s’: 識別子が見つかりませんでした
c:\…\CRT_MBWC.hxx(447) : error C3861: ‘_i64tot_s’: 識別子が見つかりませんでした
c:\…\CRT_MBWC.hxx(459) : error C3861: ‘_ui64tot_s’: 識別子が見つかりませんでした
c:\…\CRT_MBWC.hxx(488) : error C3861: ‘_tstof’: 識別子が見つかりませんでした
_s が付かないものや,他の関数に置き換え.
C:\…\WinMFC.hxx(297) : error C2065: ‘HDROP’ : 定義されていない識別子です。
C:\…\WinMFC.hxx(297) : error C2146: 構文エラー : ‘)’ が、識別子 ‘hDropInfo’ の前に必要です。
C:\…\WinMFC.hxx(297) : error C2433: ‘DropFilesToStringArray’ : ‘inline’ はデータ宣言をするのに使用できません。
C:\…\WinMFC.hxx(297) : error C2059: 構文エラー : ‘)’
C:\…\WinMFC.hxx(298) : error C2143: 構文エラー : ‘;’ が ‘{‘ の前にありません。
C:\…\WinMFC.hxx(298) : error C2447: ‘{‘ : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
関数を無効に.
C:\…\WinMFC.hxx(477) : error C2589: ‘(‘ : スコープ解決演算子 (::) の右側にあるトークンは使えません。
C:\…\WinMFC.hxx(477) : error C2059: 構文エラー : ‘::’
C:\…\WinMFC.hxx(479) : error C2589: ‘(‘ : スコープ解決演算子 (::) の右側にあるトークンは使えません。
C:\…\WinMFC.hxx(479) : error C2143: 構文エラー : ‘;’ が ‘::’ の前にありません。
クリップボードへのテキスト転送の部分ではあるが,ちょっとわからず.関数を.無効に.
VC 2005 MFC スマートデバイス AP
以下の様なコードが動作する様に幾つかを書換えてテスト.
CString TF_GetRunStatus (void)
{
CStringArray sa ;
{
sa.Add(::GetTempPath ()) ;
sa.Add(::GetModuleFileName ()) ;
sa.Add(::IsWow64()?_T(“Wow64”):_T(“”)) ;
}
{
double osVer = ::OS__GetVersion() ;
sa.Add(::FtoT (osVer)) ;
CString str ; str.Format(_T(“%f”),osVer) ;
sa.Add(str) ;
}
#ifndef _WIN32_WCE
sa.Add(::GetComputerName ()) ;
sa.Add(::GetUserName ()) ;
sa.Add(::GetCurrentDirectory()) ;
sa.Add(::GetFullPathName (_T(“.\\”))) ;
#endif
sa.Add(::GetBuildStrFull ()) ;
CString str ;
::StringArrayToString(sa,str) ;
return str ;
}
::GetTempPath
PPC2003 “\Temp\”
SP 2003 “\Strage\Application Data\Volatile\”
WM 5,6 ”\Application Data\Volatile\”
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() ;
}
PAtoMHD.AsPln2D を …
PAtoMHD.AsPln2D を IIS のコンポーネントとして登録.
DrawVer.asp
<%@ Language=VBScript %>
<% Option Explicit %>
<HTML>
<BODY>
<%
dim oToPA
set oToPA = Server.CreateObject(“PAtoMHD.AsPln2D”)
Response.Write oToPA.GetVersion
set oToPA = Nothing
%>
</BODY>
</HTML>
実行すると,
エラー タイプ
Server オブジェクト, ASP 0178 (0x80070005)
許可を確認中に Server.CreateObject の呼び出しに失敗しました。このオブジェクトへのアクセスは拒否されます。
/Test/DrawVer.asp, line 7
「コンポーネント サービス」-「DCOM の構成」で「セキュリティ」タブ内の設定.
IIS を再起動する
以下の様にしていると
set oMICS = Server.CreateObject(“AsMicsS.Application”)
set oToPA = Server.CreateObject(“PAtoMHD.AsPln2D”)
PAtoMHD.exe は IUSR_DEVXP となるが,AsMicsS.exe は SYSTEM でリフレッシュ毎に起動されてしまっている.
どうも,PAtoMHD.Application などの場合に複数起動されているみたい.
IUSR_~ と SYSTEM の違いはよくわからない.