Iwao Alles

3D Builder 0x80510018

leave a comment »

データにより,3D Builder の読込で 0x80510018 エラーに.

以前の 3mf 出力では,テクスチャファイル名を数字と ‘_’ にしていたが,
 先日他の 3D 形式の関係で,7 bit の文字の範囲に変更した.
どうもこれがいけなかったみたいで,
 3mf で出力する時は,newName.Format(_T(“Tex_%03d.png”),tIndex+1) に修正.

Written by Iwao Alles

2017年4月19日 at 15:38

カテゴリー: 3D

現在の時刻を文字列に

leave a comment »

C++
 time_t tim_v = ::time(NULL) ;
 struct stm = ::localtime(&tim_v) ;
 tstring buff ;
 size_t size = 255 ;
 buff.resize(size+1,0) ;
 ::_tcsftime(&buff[0],size,_T(“%Y/%m/%d %H:%M:%S”),&stm) ;
 tstring str = buff.c_str() ;

MFC
 CString str = CTime::GetCurrentTime().Format(_T(“%Y/%m/%d %H:%M:%S”)) ;

JavaScript
 var time = new Date() ;
 var y_ = time.getFullYear() ;
 var m_ = time.getMonth() + 1 ;
 var d_ = time.getDate() ;
 var hh = time.getHours() ;
 var mm = time.getMinutes() ;
 var ss = time.getSeconds() ;
 var str= (y_+”/”+m_+”/”+d_+” “+hh+”:”+mm+”:”+ss) ;

PHP
 date_default_timezone_set(‘Asia/Tokyo’) ;
 $str = date(“Y/m/d H:i:s”) ;

Written by Iwao Alles

2017年4月11日 at 17:13

カテゴリー: メモ

コンソール AP で MFC

leave a comment »

コンソール AP で,MFC(AfxWin.h など)に依存したコードを利用


新しく書いたものは,次の様なコードで可能.
  #include “EnhMetaF.hxx”
  #include “i_Trace.hxx”
  
  int _tmain(int argc, TCHAR* argv[])
  {
     _tsetlocale(LC_ALL,_T(“”)) ;
     {
       EnhMetaF emf ;
       CMetaFileDC*mfdc = emf.GetDC() ;
       mfdc->Rectangle(10,10,30,20) ;
     }
     return 0 ;
     }


古いコードは,うまく対応できてないので…
  #undef _CONSOLE
  #include <AfxWin.h>
  #include <AfxExt.h>
  #include <AfxCmn.h>
  #ifdef _WIN32
  #define _WINDOWS
  #endif
  #include “MessCon.hxx”
  #include “MessBar.hxx”
  #ifdef MessageBar
     #undef MessageBar
     #define MessageBar MessageCon
     #undef I_SUPPORT_MESSAGE_MFC
  #endif
  #include “MessWrap.hxx”
  // …
  int _tmain(int argc, TCHAR* argv[])
  {
     #ifdef _MFC_VER
     if (!::AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)) {
       return 1 ;
       }
     #else
     _tsetlocale(LC_ALL,_T(“”)) ;
     #endif
    //  …
     }


undef の幾つかは,自コードの対応のために必要.

Written by Iwao Alles

2017年3月23日 at 15:05

カテゴリー: メモ, MFC

ubuntu 環境の再設定

leave a comment »

mac 上の仮想マシンに入れた ubuntu
暫く使ってなかったので,LAN 環境などが当時の古いまま.
ubuntu は昨日更新して 16.04 LTS .
外にアクセスするルートは DHCP が使えるが,もう一つの LAN はDHCP サーバがない.
Win PC や mac からは特に問題なく使えてたが,ubuntu は安定しない?
IP を固定することで対応.
「接続を編集する…」-「編集」-「IPv4設定」で,169.254.xx.xx ,255.255.0.0 と指定.


WSS,WD Cloud,DS115j などにアクセス可能となった.
IIS など Web サーバは,IP でないと接続できないものもあり.

Written by Iwao Alles

2017年3月22日 at 21:49

カテゴリー: Linux

Xcode include

leave a comment »

MFC や Windows に依存しないコードのテスト.
今 mac に入っているのは,Xcode Version 6.4.


Project Navigator で,対象のプロジェクトを選択.
検索の所に Search と入力して絞り込み.
Header Search Paths の /Applications/… となっている所をダブルクリック.
「+」で,/Users/Iwao/Public/Dropbox/Develop/_.SRC/__CPR_ などを追加.


VC では,「アクティブプロジェクトに設定」や「スタートアッププロジェクトの設定」にあたるもの.
ビルドや実行対象の変更は,メニューの「Product」-「Scheme」にある.
 以前と変わった?

Written by Iwao Alles

2017年3月21日 at 23:45

カテゴリー: Xcode

EnumFilesTree で無限ループ

leave a comment »

フォルダ以下の全てのファイルを列挙する関数

v_tstring	EnumFilesTree	(LPCTSTR path)
{
	v_tstring	foundFiles = ::EnumFiles(path) ;
	v_tstring	foundFolds = ::ExtractFolders(foundFiles) ;
	for (size_t index=0 ; index<foundFolds.size() ; index++) {
		tstring		subFold = foundFolds[index] ;
		v_tstring	chFiles = ::EnumFiles(subFold.c_str()) ;
		v_tstring	chFolds = ::ExtractFolders(chFiles) ;
		foundFolds.insert(foundFolds.end(),chFolds.begin(),chFolds.end()) ;
		foundFiles.insert(foundFiles.end(),chFiles.begin(),chFiles.end()) ;
		}
	return	foundFiles ;
	}

今まで特に問題なく動作していたが,
先週末 VC 14 i3DV のデバッグ版を実行すると無限ループに.
Release 版や,VC 12 のデバッグ版などでは OK .


昨日は,別の PC 環境だったため再現せず.


今日デバッガを使用して調査すると,
 フォルダの「作成日時」が正しくない.
 http://iwao.synology.me/wordpress/dev/2016/09/15/
そのため,_wstat64 が正しく帰ってこない.

v_tstring	EnumFiles	(LPCTSTR path_,const bool skipDot=true)
{
	tstring	path = ::Path_DelLastSP(path_) ;
	if (!File_IsDirectory(path.c_str()))	{
		path = ::Path_GetDir(path) ;
		}
	v_tstring	foundFiles ;
	#if		defined	__GNUC__
		foundFiles = ::EnumFiles_GNUC	(path,skipDot) ;
	#elif	defined	_MFC_VER
		foundFiles = ::EnumFiles_MFC	(path,skipDot) ;
	#elif	defined	_MSC_VER
		foundFiles = ::EnumFiles_MSC	(path,skipDot) ;
	#endif
	return	foundFiles ;
	}

ここの,File_IsDirectory(…) で,stat を利用している.


次の様に ::GetFileAttributes(…) の判断を追加.

	if (!::File_IsDirectory(path.c_str()))	{
		#if	(_MSC_VER == 1900)
		{
			if (!::FA_Is_Directory(path)) {
				path = ::Path_GetDir(path) ;
				}
			}
		#else
		{
			path = ::Path_GetDir(path) ;
			}
		#endif
		}

Written by Iwao Alles

2017年3月14日 at 15:12

カテゴリー: VC

vector 要素の削除

leave a comment »

MSDN vector::erase
MFC の CArray::RemoveAt(index,count=1)
 先頭要素の削除
  v1.erase( v1.begin( ) );
 [1] の削除
  v1.erase( v1.begin( )+1 );

Written by Iwao Alles

2017年3月7日 at 11:47

カテゴリー: メモ, VC