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

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

2025年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 103,396 アクセス


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.

BDoc ファミリ

コンパイルで以下の様なエラーになった場合
c:\…\DocIB.cxx(77) : error C2065: ‘BDocCSV_D’ : 定義されていない識別子です。
c:\…\DocIB.cxx(77) : error C2146: 構文エラー : ‘;’ が、識別子 ‘bdcsv’ の前に必要です。
c:\…\DocIB.cxx(77) : error C2065: ‘bdcsv’ : 定義されていない識別子です。
c:\…\DocIB.cxx(78) : error C2228: ‘.Read’ : 左側がクラス、構造体、共用体ではありません。
c:\…\DocIB.cxx(79) : error C2228: ‘.BDoc_Draw’ : 左側がクラス、構造体、共用体ではありません。
c:\…\DocIB.cxx(79) : error C2653: ‘BDoc_Draw’ : 識別子がクラス名でも名前空間名でもありません。

DocIB.cxx のインクルードする場所をもう少し前にすることによりエラーはなくなるが,…


実行時,いろいろな所でダウンする(表面化しないこともあり).
BDoc_Draw と BDocCSV_D の定義の不整合が原因.
BDoc ファミリや,AccessItemND を見直さなければならないがちょっと時間が取れない.


ひとまず,App.h に BDoc_D.hxx をインクルードすることにより対応する.
#include “MetaFile.hxx”
#include “MemoryDC.hxx”
#include “BDoc_D_.hxx”

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

VC 7.1 メモリウィンドウ

VC71 Memory UNICODE

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

CFont::CreatePointFont でアサート

—————————
Microsoft Visual C++ Debug Library
—————————
Debug Assertion Failed!

Program: C:\WINDOWS\explorer.exe
File: wingdix.cpp
Line: 269

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)
—————————
中止(A) 再試行(R) 無視(I)
—————————
CreatePointFont CMetaFile
ここ 1 年位のコードで何個かあったので,…
呼び元で与えられた pDC が CMetaFileDC の場合,m_hAttribDC が NULL となるため.
コードを書いた段階では画面やプリンタだったが,今回 Text → EMF で表面化した.
修正は以下の様な感じ.

//	font.CreatePointFont(120,faceName,pDC) ;
if (pDC->m_hAttribDC == NULL)	{   font.CreatePointFont(120,faceName,NULL) ;  }
else				{   font.CreatePointFont(120,faceName,pDC) ;   }
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

XML の読込テスト – 4

全ては表現できてないが,msxml.dll により読込んだデータの関連はこんな感じか?

IXMLDOMDocument            
             
             
 documentElement  ——– IXMLDOMElement        
             
             
     attributes  ——– IXMLDOMNamedNodeMap    
             
         length     
         item 0  ——– IXMLDOMAttribute
         :    
         item n-1     name 
             value 
             
             
             
     childNodes  ——– IXMLDOMNodeList    
             
         length     
         item 0  ——– IXMLDOMElement
          :     
          :     
         item n-1  ——– IXMLDOMNode
             
             text 
     nodeName         
             
             
     tagName         
             
             
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

XML の読込テスト – 3

BOOL ReadElement(
		MSXML::IXMLDOMElementPtr pElement,
		long indent
		) {
	CString tab = _T("\t\t\t\t\t\t\t\t\t\t\t\t\t") ;
	CString lsp = tab.Left(indent) ;
	if (pElement == NULL) { return FALSE ; }
	MSXML::IXMLDOMNodeListPtr pNode = pElement->GetchildNodes() ;
	{
		CString node = LPCTSTR(pElement->GetnodeName()) ;
		CString tagN = LPCTSTR(pElement->GettagName()) ;
		CString text ;
	// 	if (pNode->Getlength() == 0) {
			text = LPCTSTR(pElement->Gettext()) ;
	// 		}
		MSXML::IXMLDOMNamedNodeMapPtr aMap = pElement->Getattributes() ;
		CString str ;
		if (aMap != NULL) {
			str = ::ToString(aMap->Getlength()) ;
			for (int aIndex=0 ; aIndex<aMap->Getlength() ; aIndex++) {
				MSXML::IXMLDOMAttributePtr attr = aMap->Getitem(aIndex) ;
				if (attr == NULL) { continue ; }
				str += CString(_T("\t")) + LPCTSTR(attr->Getname()) ;
				str += CString(_T(" ")) + ::ToStringTC(LPCWSTR(attr->Getvalue().bstrVal)) ;
				}
			}
		cout << LPCTSTR(lsp) << LPCTSTR(node) << _T("\t") << LPCTSTR(text)
			<< _T("\t") << LPCTSTR(str)
			<< endl ;
		for (int index=0 ; index<pNode->Getlength() ; index++) {
			MSXML::IXMLDOMElementPtr child = pNode->Getitem(index) ;
			ReadElement(child,indent+1) ;
			}
		}
	return TRUE ;
	}

attr->value が,VARIANT で,VT_BSTR
これを LPCTSTR とすることは出来ず,::ToStringTC をしている.
 ::ToStringTC は引数とコンパイルオプションにより char* ⇔ wchar* が可能
 今回の場合,内部では ::WideCharToMultiByte で変換している.


要素の内容の取得はこんな感じか?

//	text = LPCTSTR(pElement->Gettext()) ;
	if (pNode->Getlength() > 0) {
		MSXML::IXMLDOMNodePtr	pText = pNode->Getitem(0) ;
		if (pText != NULL) {
			text = LPCTSTR(pText->text) ;
			}
		}

https://mish.work/joomla/index.php/cpp/xml.html

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

XML の読込テスト – 2

要素へのアクセスはこんな感じと思われるが,Gettext の使い方がよくわからない.


BOOL ReadElement(MSXML::IXMLDOMElementPtr pElement,long indent)
{
CString tab = _T(“\t\t\t\t\t\t\t\t\t\t\t\t\t”) ;
CString lsp = tab.Left(indent) ;
if (pElement == NULL) { return FALSE ; }
MSXML::IXMLDOMNodeListPtr pNode = pElement->GetchildNodes() ;
{
CString node = LPCTSTR(pElement->GetnodeName()) ;
CString tagN = LPCTSTR(pElement->GettagName()) ;
CString text ;
// if (pNode->Getlength() == 0) {
text = LPCTSTR(pElement->Gettext()) ;
// }
cout << LPCTSTR(lsp) << LPCTSTR(node) << _T(“\t”) << LPCTSTR(text) << endl ;
for (int index=0 ; index<pNode->Getlength() ; index++) {
MSXML::IXMLDOMElementPtr child = pNode->Getitem(index) ;
ReadElement(child,indent+1) ;
}
}
return TRUE ;
}

BOOL TestXML (void)
{

if (pDoc->load(LPCTSTR(loadFile)) == VARIANT_TRUE) {
{
MSXML::IXMLDOMElementPtr root = pDoc->documentElement ;
ReadElement(root,0) ;
}
}

}


msxml.tlh をプロジェクトに追加すると,クラスビューで表示できる.
msxml.tlh Class View

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

XML の読込テスト

// L_xml_2.cpp : コンソール アプリケーション用のエントリ ポイントの定義
//

#include “StdAfx.h”
#include “L_xml_2.h”

#import <msxml.dll> named_guids

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

BOOL TestXML (void)
{
HRESULT hr = ::CoInitialize(NULL) ;
if (FAILED(hr)) { return FALSE ; }
{
MSXML::IXMLDOMDocumentPtr pDoc = NULL ;
hr = pDoc.CreateInstance(MSXML::CLSID_DOMDocument) ;
if (FAILED(hr)) { return FALSE ; }
CString loadFile = _T(“test.xml”) ;
{
if (pDoc->load(LPCTSTR(loadFile)) == VARIANT_TRUE) {
printf(“%s\r\n”,(LPCSTR)pDoc->xml) ;
{
MSXML::IXMLDOMElementPtr root = pDoc->documentElement ;
CString tagN = LPCTSTR(root->tagName) ;
CString text = LPCTSTR(root->text) ;
printf(“<%s>%s\r\n”,tagN,text) ;
MSXML::IXMLDOMNodeListPtr nodeL = root->childNodes ;
for (int index=0 ; index<nodeL->Getlength() ; index++) {
MSXML::IXMLDOMElementPtr child = nodeL->Getitem(index) ;
CString tagN = LPCTSTR(child->tagName) ;
CString text = LPCTSTR(child->text) ;
printf(“<%s>%s\r\n”,tagN,text) ;
}
}
}
else {
printf(_T(“error … %s\r\n%s\r\n”),loadFile,(LPCSTR)pDoc->parseError->Getreason()) ;
}
}
}
::CoUninitialize() ;
return TRUE ;
}

/////////////////////////////////////////////////////////////////////////////
// 唯一のアプリケーション オブジェクト

CWinApp theApp;

using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
// MFC の初期化および初期化失敗時のエラーの出力
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: 必要に応じてエラー コードを変更してください。
cerr << _T(“Fatal Error: MFC initialization failed”) << endl;
nRetCode = 1;
}
else
{
/*
// TODO: この位置にアプリケーションの動作を記述してください。
CString strHello;
strHello.LoadString(IDS_HELLO);
cout << (LPCTSTR)strHello << endl;
*/

TestXML() ;
}
return nRetCode;
}

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

勘違いをしていたので, ±×÷

UNICODE で,±×÷ はそれぞれ,U+00B1 , U+00D7 , U+00F7 になる.
UNICODE  U+00B1
以下は,よく参考にさせてもらっている所
文字コード(日本語漢字コード表)

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

RoundRect と svg:rect

svg:rect の rx , ry は,丸くする楕円の半径.
Win 32 API などの RoundRect は,楕円の幅と高さ.

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

文字列の縦方向の配置

svg:text の配置で,横方向の指定(text-anchor=”middle”)はあるが,縦方向はなさそうだったので…
SVG text
  if (fabs(incX) > 1e-7 || fabs(incY) > 1e-7) {
    CString moveStr = _T(“translate(“)+ToString(pnt.x)+_T(“,”)+ToString(pnt.y)+_T(“)\t”) ;
    CString rot_Str ;
    CString skewStr ;
    if (fabs(incX) > 1e-7) {
      rot_Str = _T(“rotate(“)+ToString(0-incX)+_T(“,0,0)\t”) ;
      }
    if (fabs(incY) > 1e-7) {
      skewStr = _T(“skewX(“) + ToString(0+incY) + _T(“)\t”) ;
      }
    CString    vAlign ;
    {
      P2        move = P2(0,0+txH.GetHeight()/3) ;
      vAlign = _T(“translate(“) + ToString(move.x) + _T(“,“) + ToString(move.y) + _T(“)\t”) ;
      }
    th.AddAttribute    (_T(“transform”),    moveStr + rot_Str + skewStr    + vAlign ) ;
    }
  else {
    th.AddAttribute    (_T(“x”),  ::ToString(pnt.x)) ;
    th.AddAttribute    (_T(“y”), ::ToString(pnt.y+txH.GetHeight()/3)) ;
    }

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