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

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

2025年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 103,482 アクセス


IGES ファイル

どこまで対応可能か不明だが,IGES の仕様書を読んで自分用にまとめている途中…
https://mish.myds.me/Iwao/Doc/spec/3d/iges/iges.html

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

opkg install tree

以前 DS115j には tree コマンドを入れていたが,DS116 はまだだったので…

Iwao@DS116:/tmp/http$ sudo -i
Password:

root@DS116:~# opkg install tree
-ash: opkg: command not found

root@DS116:~# cd /var/services/homes/Iwao/
root@DS116:/var/services/homes/Iwao# source ./set_ds_inc.sh
root@DS116:/var/services/homes/Iwao# opkg -v
opkg version 0.1.8
root@DS116:/var/services/homes/Iwao# opkg install tree
Installing tree (1.7.0-1) to root...
Downloading http://pkg.entware.net/binaries/armv7/tree_1.7.0-1_armv7soft.ipk
Collected errors:
 * opkg_install_pkg: Package tree md5sum mismatch. Either the opkg or the package index are corrupt. Try 'opkg update'.
 * opkg_install_cmd: Cannot install package tree.
root@DS116:/var/services/homes/Iwao# opkg update
Downloading http://pkg.entware.net/binaries/armv7/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/packages
root@DS116:/var/services/homes/Iwao# opkg install tree
Installing tree (1.7.0-1) to root...
Downloading http://pkg.entware.net/binaries/armv7/tree_1.7.0-1_armv7soft.ipk
Configuring tree.
root@DS116:/var/services/homes/Iwao# tree
.
├── gcc_test
│   ├── 20170922.out
│   ├── a.out
│   ├── editad
│   ├── EditAd.cpp
│   ├── edit_ad.php
│   └── T_P_ini.cpp
├── set_ds_inc.sh
├── Temp
│   └── rc.local
└── www
    └── dmp_   .php

3 directories, 9 files
tree コマンド実行
Synology NAS tree
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

html がダウンロードに…

html から php を呼出す様にするために,.htaccess に次の内容を追加.
 AddType application/x-httpd-php .php .html
一部の環境ではうまく動作するように見えたが,幾つかの環境でダウンロードになってしまう.


.htaccess を削除して,再度 html を開くと,またダウンロードになってしまう.
別のサーバ名(//mish.myds.me ではなく//ds116)から入ると,正しく表示出来る.
原因はブラウザのキャッシュで,クリアして正しく表示出来る様になった.

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

HDL-Z2WM2C2 メール設定

何時からかは不明だが HDL-Z2WM2C2 のメール設定が無効になっていたので…
メール設定 ZWS Manager
HDL-AH2W は,
LANDISK HDL-AHW メール設定
WDCloud はメールアドレスだけの指定.
WDCloud メール設定
WDCloud メール設定
DS115j
Synology NAS  DSM メール設定



https://dev.mish.work/wordpress/?s=Mail+Server

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

WN-AC1167R 追加

アクセスポイントとして WN-AC1167R を追加.
単に接続するだけならば,特に難しい部分はなし.
最初「APモード」としてうまく認識していなかったのか,AC アダプタを抜いて再起動.
ちょっと失敗したのが,有線 LAN が 100 M .
 パッケージの「有線 Giga」は誤解を招きそうと思う(私もちゃんと見てなくて勘違い).
 型番で G が付くものが有線 LAN を含む全ポート Gigabit 対応?


無線 LAN のチャンネルや帯域を設定は,AC1167R の IP アドレスが必要になる.
Magical Finder が必要で 107SH にインストール(Moto G5 は Android 7.0 のため?動作しない).

ここで表示される IP アドレスを PC のブラウザに入力して設定.


AC1167R に WD Cloud をつなげたので,次のアラートが…
 イベント タイトル:10/100 でイーサネット ポート %1 に接続されています
 イベント タイトル:ネットワーク リンク停止
再起動したりしているので当然だが,ある時からほぼ毎日 2:00 と 9:00 にメールが来るようになっていた.
原因はルータ BL190HW の「省エネモード設定」で,とりあえず無効に.


設置してしばらくして気付いたのが,Web サーバが外からアクセスできなくなっていた.
LAN 内からは問題ないので,Web サーバの再起動と,ルータ BL190HW を再起動.


2017/11/07
WN-AC1167R の現在時刻が正しくない.1/1 にリセットされている.
また,「インターネットに接続されてない」という表示があった?
再起動して OK .


2017/11/08
Aterm WR9500N より,届く範囲が少し狭い様に感じる.
届きにくかった部屋は解消できているので,出力も少し押さえて利用.


2017/11/16
その後,特に問題なく安定しているように見える.


2018/02/15
Magical Finder for Andriod Version 4.0.0 Build 1115 で,Moto G5 でも動作する様になっている.


2018/02/28
107SH では動作しなくなった?


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

CObArray <--> CObList

CObList の形式のデータを配列として処理したかったので,その相互変換(Sort_ind.hxx 内).


#ifdef		_MFC_VER
//*******************************************************************************
//	ObList	->	ObArray
//	Create	:	2017/10/30
//*******************************************************************************
inline	bool	To_ObArray	(const CObList& src,CObArray* dstAry)
{
	if (dstAry == NULL)		{	return	false ;		}
	dstAry->RemoveAll() ;
	{
		POSITION pos = src.GetHeadPosition();
		while (pos != NULL)	{
			CObject*	pObj = src.GetNext(pos);
			dstAry->Add(pObj) ;
			}
		}
	return	true ;
	}

//*******************************************************************************
//	ObArray	->	ObList
//	Create	:	2017/10/30
//*******************************************************************************
inline	bool	To_ObList	(const CObArray& src,CObList* dstLst)
{
	if (dstLst == NULL)		{	return	false ;		}
	dstLst->RemoveAll() ;
	{
		for (INT_PTR index=0 ; index<src.GetSize() ; index++) {
			CObject*	pObj = src[index] ;
			dstLst->AddTail(pObj) ;
			}
		}
	return	true ;
	}

#endif	//	_MFC_VER
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

T5400 そろそろ…

Windows Update を行って,再起動.もう一回再起動.

340 の末期の頃と似た現象.


Aero などのトラブルシューティングに入っていくと,
「デスクトップ ウィンドウ マネージャーが無効になっている」.

意外とこの状態の方が表示周りはサクサク動いている様に感じる.


DiXiM Digital TV plus で再生ができない.


2017/10/20 今日はネットワークが見えなくなった.PC の再起動で対応.


2017/11/01 仮想マシンのマウス入力が効かなくなった.仮想 PC の再起動で対応.


2017/11/08
今度は,USB 機器が突然認識しなくなった.
接続し直したり,再起動してもダメ.
特に困ったのは,切替機(USH2-24SSV)に接続したキーボードとマウス.
さらに再起動して,別のポートにキーボードとマウスを接続してやっと認識できた.


2017/11/09
これとの関係ははっきりしないが,仮想 PC から NAS の参照で幾つかのファイルが開けない現象が発生.
他にも,Outlook のフォルダ構成が変わってしまい意図しない所に移動している?


2017/11/16
今日になって,ネットワークが不安定.

NAS やルータ,PC を再起動して何とかつながる様になったみたい.
Aero が動作する様になった.この再起動の時,Windows Update があったのでその影響か?

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

BRD-UT16WX その後

今年の初めの頃に BRD-UT16WX を追加したが,BD が見れなくてあまり活用できていなかった.
今日 CD を焼きたいと思い,IOPortal に行くと WinDVD が新しくなっている.
これをダウンロードしてインストール,
実行すると前回再生できなかった BTTF が見られるようになった.

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

NSZT-W64 地図更新

先週位からナビ起動時に,地図データ更新期限のメッセージ…
いつもお世話になっているトヨタの人に聞くと「面倒ですよ」とのこと.
個人的に躓いたのは次の内容.
 ナビ情報の登録
 予想以上の更新時間
 更新の失敗


ナビ情報の登録は,私の場合は「品番」と「シリアル」が必要でした.
トヨタ純正ナビ 型番 NSZT-W64 品番 08545-00W50 と シリアル
車台番号ではダメで,その画面の一番下で入力するのですが,それがわかり難かった.
また,ナビ本体でも確認できる様です.
 トヨタ純正カーナビNSZT-W64のシリアル番号の調べ方(SDカードの地図更新)


地図データの更新
「地図SDを抜かないで…」と出ているので,その間検索してみると 3 時間以上かかるとのこと.
手順なども含めこちらで詳しく書かれています.
 トヨタのナビ更新サービスのマップオンデマンドが結構大変な件
更新を行っていたのが昨日の夜だったので,そのまま放置.


画面を撮るのを忘れたのですが,確か 84/3468 で止まった状態.
 今思うと,PC がスリープに入ったのが原因?
検索すると,ちょっと表示は異なるのですが,
 地図データ更新(失敗) 地図SDリカバリー
 地図データ更新(失敗) 地図SDリカバリー 続きです
そこにある手順通りに,
 ユーザー情報削除
 ローカル地図データ削除
MapOnDemand を再起動して,zip のドロップから再度操作.
3 時間位かかって,やっと更新終了.
はっきりは分かりませんが,SD への書き込みが動作する前に止まっていたのではと思います.

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

外からの接続が不安定

朝見ると,http://itl.mydns.jp や http://iwao.synology.me などへの外からの接続ができなくなっていた.
外へのアクセスは特に問題なさそう.
先日 DS116 を追加して,いろいろいじったためと思ったが…
DS115j のログにエラーがある.
Error システム 2017/09/27 03:24:25 SYSTEM System failed to register [27.92..] to [xxx.jp] in DDNS server …


5 年以上前から 121.108…. から変更されなかったので,丁度良いと思っていたのに…
IP が変わったことにより,何かの整合性が取れてないのかもしれない.
ルータ,アクセスポイント,外からアクセスできるサーバなど,何度か再起動して落ち着いた?

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

CHttpFile を使用したアップロード

CHttpFile を使用したアップロードのコードを整理.
サーバ側は先日の php と同様.
https://jml.mish.work/index.php/i-tools/upload-htm-php.html


//*******************************************************************************
//	send request define
//	Create	:	2017/08/28
//*******************************************************************************
#define	C_CRLF			_T("\r\n") ;
#define	CT_ct_mp_fd_b_		_T("Content-Type: multipart/form-data; boundary=")
#define	CT_boundary__		_T("--")
#define	CD_cd_f_d_n_		_T("Content-Disposition: form-data; name=")
#define	CD_cd__fn_		_T("; filename=") ;
#define	CT_ct_a_o_s		_T("Content-Type: application/octet-stream")

//*******************************************************************************
//	make send data
//	Create	:	2017/08/28
//*******************************************************************************
inline	v_char	Make_send_data	(LPCTSTR upFile,LPCTSTR ___boundary)
{
	v_char	up_Data = v_c_Load (upFile) ;
	v_char	sndData ;
	{
		tstring	ct_boundary	= ___boundary ;
		tstring	file_img	= ::QuotM_Add(_T("file_img")) ;
		tstring	fileName	= ::QuotM_Add(::Path_GetName(upFile)) ;
		tstring	dataPre ;
		tstring	dataPst ;
		dataPre+=	CT_boundary__	+	ct_boundary				+	C_CRLF ;
		dataPre+=	CD_cd_f_d_n_	+	file_img	+	CD_cd__fn_	;
		dataPre+=							fileName	+	C_CRLF ;
		dataPre+=	T_ct_a_o_s								C_CRLF ;
		dataPre+=										C_CRLF ;
		dataPst+=										C_CRLF ;
		dataPst+=	CT_boundary__	+	 ct_boundary	+	CT_boundary__		C_CRLF ;
		v_char	vc_pref = ::To_v_char(::To__string(dataPre.c_str())) ;
		v_char	vc_post = ::To_v_char(::To__string(dataPst.c_str())) ;
		sndData.insert(sndData.end(),vc_pref.begin(),vc_pref.end()) ;
		sndData.insert(sndData.end(),up_Data.begin(),up_Data.end()) ;
		sndData.insert(sndData.end(),vc_post.begin(),vc_post.end()) ;
		}
	#ifdef	_DEBUG
	{
		::i_Dump(sndData,(::Path_GetName(upFile)+_T(".txt")).c_str()) ;
		}
	#endif
	return	sndData ;
	}

//*******************************************************************************
//	upload
//	Create	:	2017/08/28
//*******************************************************************************
inline	bool	UploadFile	(LPCTSTR svrName,LPCTSTR php,LPCTSTR upFile)
{
	{
		if (::File_IsNothing(upFile))			{	return	false ;		}
	//	if (::File_GetSize  (upFile) > 2048*1024)	{	return	false ;		}
		}
	tstring	head ;
	v_char	sndData ;
	{
		tstring	___boundary = _T("-----UpFile__2017_08_30") ;
			___boundary = _T("-----") + ::Path_GetName(_T(__FILE__)) + _T("__") + ::Now_Format(_T("%H%M%S")) ;
		head	= CT_ct_mp_fd_b_	+ ___boundary ;
		sndData = Make_send_data(upFile,  ___boundary.c_str()) ;
		}
	tstring	serverN = svrName ;
	tstring	portStr ;
	{
		v_tstring	strAry = ::String_Split(svrName,false,_T(":")) ;
		if (strAry.size() >= 2) {
			serverN = strAry[0] ;
			portStr = strAry[1] ;
			}
		}
	INTERNET_PORT	nPort = 0 ;
			nPort = ::ttou2(portStr) ;
	tstring		userAgent = _T("drop_up") ;
			userAgent = ::Path_GetName(_T(__FILE__)).c_str() ;
	#ifdef	_WIN32
	{
		userAgent = ::Path_GetName(::i_GetModuleFileName()) ;
		{
			tstring	osVer	= _T("Windows NT ") + ::To_tstring_rz(::GetWinVer_exe()) ;
				osVer	+=  tstring(_T(" "))+ Bracket_Add(::GetWinVerStr_exe(),_T('(')).c_str() ;
			userAgent += _T(" ") + osVer ;
			userAgent += EXE_AddVerBuildStr() ;
			}
		}
	#endif
	CInternetSession	session(userAgent.c_str()) ;
	CHttpConnection*	pServer = NULL ;
	CHttpFile*		pFile = NULL ;
	DWORD			dwStatus = 0 ;
	try	{
				pServer = session.GetHttpConnection(serverN.c_str(),nPort) ;
				if (pServer == NULL)				{	return	false ;		}
			{
				CString	headStr = head.c_str() ;
				pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,	php) ;
				if (pFile == NULL)				{	return	false ;		}
				pFile->SendRequest(headStr,(LPVOID)(&sndData[0]),DWORD(sndData.size())) ;
				pFile->QueryInfoStatusCode(dwStatus) ;
				}
			{
				delete	(pFile) ;
				delete	(pServer) ;
				}
		}
	catch	(CInternetException* e) {
		CString	errMsg ;
		e->GetErrorMessage(errMsg.GetBuffer(1024),1024) ;
		errMsg.ReleaseBuffer() ;
		std::tout << LPCTSTR(errMsg) << std::endl ;
		return	false ;
		}
	session.Close() ;
	return	true ;
	}

//*******************************************************************************
//	upload files
//	Create	:	2017/08/29
//*******************************************************************************
inline	bool	UploadFiles	(c_v_tstring& upFiles)
{
	v_tstring	svr_php = ::UF_get_server_php() ;
	tstring		serverN = svr_php[0] ;
	tstring		phpName = svr_php[1] ;
	for (size_t index=0 ; index<upFiles.size() ; index++) {
		tstring	upFile = upFiles[index] ;
		if (::File_IsNothing(upFile))		{	continue ;		}
		if (!::UploadFile(serverN.c_str(),phpName.c_str(),upFile.c_str()))	{
			return	false ;
			}
		}
	return	true ;
	}

UploadFile


これらを使用したツールは以下にあります.
https://i-tools.mish.work/2019/10/up-htm.html


2020/09
日本語を含むファイル名のアップロード

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

データ送信 htm , php

html で複数のファイルを指定,php でそれを move_upload_file .


up_data.htm


<form enctype="multipart/form-data" action="up_data.php" method="POST">
    upload file:<br/>
    <input name="file_1" type="file" /><br/>
    <input name="file_2" type="file" /><br/>
    <input type="submit" value="send" />
    </form>


up_data.php


<?php
    if (!file_exists("./data")) {
        mkdir("./data") ;
        }
    foreach ($_FILES as $keys => $values) {
        $file_e = $values ;
        $tempfile =                $file_e[‘tmp_name’] ;
        $filename = ‘./data/’ .  $file_e[‘name’] ;
        if (is_uploaded_file($tempfile)) {
            move_uploaded_file($tempfile,$filename) ;
            }
        }
    $scan_f = scandir("./data") ;
    foreach ($scan_f as $key => $value) {
        echo $value . "<br/>\r\n" ;
        }
    ?>


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

DS115j が見えない

DS115j が見えなくなった.192.168.0.x では開ける.
外からも問題なく見えている.


幾つか試したが,変化なし.
 「ネットワークアダプタ」の無効化,有効化.
 PC の再起動.
 2 つのルータの再起動.
DS115j も再起動したいが,DSM に入れない.


暫くわからなかったが,WLI-UC-AG300N を見るとランプがついてない.
指し直すと,ランプも点滅して,うまく動作するようになった.

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

ダイアログバーに CCheckListBox

通常のダイアログに CCheckListBox を追加するには,次のような手順.
  CCheckListBox の使い方
ダイアログバーでは,次の様にしてもデータが表示されない.

CCheckListBox*  clb = (CCheckListBox*)m_wndDlgBar.GetDlgItem(IDC_CHECK_LB) ;
clb->AddString("....") ;

以前作成した,オーナー描画のドロップダウンを思い出しコードを見ると,

CMainFrame に変数を追加して,サブクラス化している.
CMainFrame::OnCreate でダイアログバーを Create した後,
 m_ODCB.SubclassDlgItem(IDC_COMBO,&m_wndDlgBar) ;

このコードの最初は,2004/07.
手元にある幾つかの本を見たが見つからなかった.
何を参考にしたかは今となっては不明.


LBN_SELCHANGE で選択された状態がイマイチ.
 内容を更新(PostMessage)するとインデックス 0 の項目に薄い点線が付く.
SendMessage として更新後,選ばれていた項目を SetCurSel することで対応.

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

iframe を右下に

左上を指定して下や右をフィットさせるのが意外と面倒だったので…


<!DOCTYPE html>
<html	lang="ja">
	<head>
		<meta	charset="UTF-8"	/>
		<title	>iframe</title>
		<style>
			body {
				margin		:	auto auto	auto auto	;
				overflow	:	hidden	;
				}
			</style>
		</head>

	<body>
		Text<br/>
		<iframe	
			src='/3D_Data/three_js/ThreeIMO.htm'	
			name='ifrm'
			style='
				position	:	absolute ;
				width   	:	99% ;
				height  	:	90% ;
				bottom  	:	2pt ;
				margin-left	:	2pt ;
				margin-right	:	2pt ;
				'
			>
			</iframe>
		</body>
	</html>

//itl.mish.work/~Iwao/…/test6/


2017/07/10 さらに変更したもの
itl.mish.work/…/to_wgl/

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

DS115j PHP 動作してない

DS115j を再起動したら,index.php が動作しなくなった.
 index.php の内容がそのまま表示される.
php を認識しなくなった様ではあるが,何で?


「Web Station」の設定で,一度「未構成」にして,「PHP x.x」で動作する様になった.

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

実行時のエラー OpenMP

普段通っているコードなのに,ある条件(操作)で実行時にエラー.
エラーの場所はある範囲(DelFileE への登録)ではあるが,固定されてない.
 CStringArray に CString の追加.
コールスタックを見ると MakeFace$omp$1 とある.


   ucrtbased.dll!__VCrtDbgReportA () 不明
   ucrtbased.dll!__CrtDbgReport () 不明
   mfc140ud.dll!AfxAssertFailedLine(const char * lpszFileName, int nLine) 行 333 C++
   mfc140ud.dll!CWnd::DestroyWindow() 行 1055 C++
   mfc140ud.dll!CToolTipCtrl::DestroyToolTipCtrl() 行 73 C++
   mfc140ud.dll!AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 行 253 C++
   mfc140ud.dll!AFX_MODULE_THREAD_STATE::`scalar deleting destructor'(unsigned int) C++
   mfc140ud.dll!CThreadSlotData::DeleteValues(CThreadData * pData, HINSTANCE__ * hInst) 行 354 C++
   mfc140ud.dll!CThreadSlotData::DeleteValues(HINSTANCE__ * hInst, int bAll) 行 396 C++
   mfc140ud.dll!AfxTermLocalData(HINSTANCE__ * hInst, int bAll) 行 494 C++
   mfc140ud.dll!DllMain(HINSTANCE__ * hInstance, unsigned long dwReason, void * __formal) 行 663 C++
   mfc140ud.dll!dllmain_dispatch(HINSTANCE__ * const …, void * const reserved) 行 195 C++
   mfc140ud.dll!_DllMainCRTStartup(HINSTANCE__ * const …, void * const reserved) 行 248 C++
   ntdll.dll!_LdrpCallInitRoutine@16 () 不明
   ntdll.dll!_LdrShutdownProcess@0 () 不明
   ntdll.dll!_RtlExitUserProcess@4 () 不明
   kernel32.dll!_ExitProcessStub@4 () 不明
   ucrtbased.dll!__crt_hmodule_traits::close(struct HINSTANCE__ *) 不明
   ucrtbased.dll!__crt_hmodule_traits::close(struct HINSTANCE__ *) 不明
   ucrtbased.dll!__Exit () 不明
   ucrtbased.dll!_raise () 不明
   ucrtbased.dll!__acrt_lock_and_call<class <lambda_fe…55> >(enum __acrt_lock_id,class <…; &&) 不明
   ucrtbased.dll!___acrt_MessageWindowA () 不明
   ucrtbased.dll!__VCrtDbgReportA () 不明
   ucrtbased.dll!__CrtDbgReport () 不明
   mfc140ud.dll!AfxAssertFailedLine(const char * lpszFileName, int nLine) 行 333 C++
   mfc140ud.dll!CStringArray::SetSize(int nNewSize, int nGrowBy) 行 165 C++
   mfc140ud.dll!CStringArray::SetAtGrow(int …, const ATL::CStringT<wchar_t,… > & newElement) 行 265 C++
   mfc140ud.dll!CStringArray::Add(const ATL::CStringT<wchar_t, … > & newElement) 行 322 C++
   BlockIn.exe!DelFileE::Add(const wchar_t * fileName) 行 51 C++
   BlockIn.exe!CacheFile::GetCF_Name(const wchar_t * srcName, const unsigned int dibWidth) 行 415 C++
   BlockIn.exe!PartsA_To::ToIPX(const wchar_t * ipxName) 行 257 C++
   BlockIn.exe!PartsA_To::DumpDebug(const int delFE, const wchar_t * pre_) 行 297 C++
   BlockIn.exe!PartsA_To::DumpDebug(const wchar_t * pre) 行 47 C++
   BlockIn.exe!PartsA_Fnc_DebugDump(PartsA & partsAry, const wchar_t * pre) 行 818 C++
   BlockIn.exe!MaPat__DebugDump(const Parts & parts) 行 3293 C++
   BlockIn.exe!MaPat::MakePartsFace(const int makeEdge) 行 3481 C++
   BlockIn.exe!BAPat::MakePartsFace(const int makeEdge) 行 1508 C++
   BlockIn.exe!BAPat::GetPartsFace(const int makeEdge) 行 1935 C++
   BlockIn.exe!BlockInf::MakeFace(const int makeEdge) 行 3465 C++
> BlockIn.exe!BlockLay::MakeFace$omp$1() 行 4320 C++
   [外部コード]


次の様に #pragma omp critical を追加.
  BOOL DelFileE::Add (LPCTSTR fileName)
  {
     #ifdef _OPENMP
       #pragma omp critical (DelFileE_Add)
     #endif
     {
       CString filePath = ::FolderDelLastSP(fileName) ;
       DelFileName.Add(filePath) ;
       }
     return TRUE ;
     }

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

IIS+PHP

先週まで DS115j 上の PHP と exe環境を作っていたが,今度は IIS 上の PHP .
次の所を参考にさせてもらった.
 Windows 8/7/Vista に PHP をインストール
 IIS での PHP Web サイトの構成
以前の Win7 に IIS を入れた環境に設定.


PHP がうまく動作しているかの確認は,
 コマンドプロンプトで,php -v や php -r “phpinfo() ;” .

 次の内容を php として保存し,ブラウザで開く.
  <?php phpinfo(); ?>


DS115j 上で動かしたものと同等の日時の表示は,何とか動作する様になった.
ほとんどが C++ のコードなので,今回の範囲ではあまり変更はなかった.
ただ exe を呼出す PHP のパスの指定や %TMP% にあたる部分がいろいろとありそう.
パス区切りは,’/’,’\’,’\\’ などで動作するみたいだが完全なのは ‘\\’ か?
ハードコードの部分は ‘/’ として PHP_OS により ‘\\’ に変換する関数を用意する.
 コードは次の様なもの.
   function Path_Normalize ($path_) {
     $path = $path_ ;
     if (PHP_OS == ‘WINNT’) {
       $path = str_replace (“/”,DIRECTORY_SEPARATOR,$path) ;
       }
     return $path ;
     }


単に,str_replace で良さそう.
  $path = str_replace (“/”,DIRECTORY_SEPARATOR,$path) ;
c の関数マクロの様な使い方はわからなかったので,change_sp($path) の関数とした.
さらに,php ファイルのインクルードは次の様な感じで振り分け.
   if (PHP_OS == ‘WINNT’) {
     include (“./lib.php”) ;
     }
   else {
     include (“/…/i_lib/2017.06/lib.php”) ;
     }


用途によっては,realpath でもいける?

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

文字列の連結

C++ tstring  strS = str1 + str2 ;
CString strM = str3 + str4 ;
JavaScript var str = str1 + str2 ;
VBScript Dim str As String
str = str1 & str2
PHP $str = $str1 . $str2 ;
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

php post , get の全ての引数を取得

$_REQUEST , $_GET など.

function  get_request_str () {
  $req ;
  foreach ($_REQUEST as $key => $value) {
   $req = $req . "$key=$value" . " " ;
   }
  return $req ;
  }
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.