2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930

カテゴリー

アーカイブ

ブログ統計情報

  • 99,662 アクセス


HDL-AH3.0W 追加

HDL-AH3.0W を追加.
LAN ケーブルを接続して,電源ケーブルを接続.電源 ON .
LAN 上で認識可能になるまでは,5 分位か?
NAS の設定画面に入るために IP アドレスが必要なため,Magical Finder で確認.
Magical Finder は,うまく認識しないこともあります.
IP アドレスが知りたいだけなので,ASUS ルータがあれば「ASUS Router」アプリでも可.
設定画面に入り,NarSuS への登録,LAN DISK の名称,メール設定
ファームウェアのアップデートがあったので,これも実施.

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

std::setprecision

次の様なコードでビルドすると,
std::tout << … << std::setprecision(4) << x << _T(“\t”) << y << std::endl ;


——————–構成: GetX_5 – Win32 Debug——————–
コンパイル中…
GetX_5.cpp
c:\…\getx_5\getx_5.cpp(256) : error C2039: ‘setprecision’ : ‘std’ のメンバではありません。
c:\…\getx_5\getx_5.cpp(256) : error C2065: ‘setprecision’ : 定義されていない識別子です。
cl.exe の実行エラー
GetX_5.exe – エラー 2、警告 0


iomanip のインクルードが必要.

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

ループ部分の OpenMP 対応

効果は低かったが,OpenMP を利用したコードに書きなおしてみた.


//---	オリジナルのコード  ----------------------------------------------------------------
	Ld2A	lins ;
	{
		for (size_t indexVV=0 ; indexVV<vv_plf.size() ; indexVV++) {
			v_PLF	v_plf = vv_plf[indexVV] ;
			if (v_plf.size() == 0)		{	continue ;		}
			for (size_t indexV=0 ; indexV<v_plf.size() ; indexV++) {
				PLF	plf = v_plf[indexV] ;
				if (plf.Is_line()) {
					Vd4A	v4a = plf ;
					Vd3A	v3a = ::ToVd3A(v4a) ;
					Vd2A	v2a = ::ToVd2A(v3a) ;
					for (size_t indexL=1 ; indexL<v2a.size() ; indexL++) {
						Vd2	s = v2a[indexL-1] ;
						Vd2	e = v2a[indexL-0] ;
						Ld2	lin(s,e) ;
						lins.push_back(lin) ;
						}
					}
				}
			}
		}
//----	OpenMP 対応 ------------------------------------------------------------------------
Ld2A	PLF_to_Ld2A	(const v_PLF& v_plf)
{
	Ld2A	lins ;
	{
		for (size_t indexV=0 ; indexV<v_plf.size() ; indexV++) {
			PLF	plf = v_plf[indexV] ;
			if (plf.Is_line()) {
				Vd4A	v4a = plf ;
				Vd3A	v3a = ::ToVd3A(v4a) ;
				Vd2A	v2a = ::ToVd2A(v3a) ;
				for (size_t indexL=1 ; indexL<v2a.size() ; indexL++) {
					Vd2	s = v2a[indexL-1] ;
					Vd2	e = v2a[indexL-0] ;
					Ld2	lin(s,e) ;
					lins.push_back(lin) ;
					}
				}
			}
		}
	return	lins ;
	}

Ld2A	PLF_to_Ld2A	(const vv_PLF& vv_plf)
{
	Ld2A	lins ;
	{
		#ifdef	_OPENMP
			#pragma	omp	parallel for
		#endif
		for (long indexVV=0 ; indexVV<long(vv_plf.size()) ; indexVV++) {
			v_PLF	v_plf = vv_plf[indexVV] ;
			if (v_plf.size() == 0)		{	continue ;		}
			Ld2A	ln_a = ::PLF_to_Ld2A(v_plf) ;
			#ifdef	_OPENMP
				#pragma	omp	critical	(PLF_to_Ld2A)
			#endif
			{
				lins.insert(lins.end(),ln_a.begin(),ln_a.end()) ;
				}
			}
		}
	return	lins ;
	}

ループ部分を並列化した実行結果

C:\Users\Iwao>C:\Temp\Test\Fill\GetX_1\ReleaseS.140\GetX_1.exe
31.856

C:\Users\Iwao>C:\Temp\Test\Fill\GetX_1\Release.140\GetX_1.exe
20.202

C:\Users\Iwao>

v_Vd2A	GetCross	(const vv_PLF& vv_plf,const Vd2& pt)
{
	Ld2A	lins = ::PLF_to_Ld2A(vv_plf) ;
	v_Vd2A	v_pnts ;
	{
		Vd2A	pnts ;
		pnts.push_back(pt) ;
		v_pnts.push_back(pnts) ;
		}
	{
		Ld2		lh(pt,pt+Vd2(1,0)) ; 
		Ld2		lv(pt,pt+Vd2(0,1)) ; 
		Vd2A	work_pnts ;
		#ifdef	_OPENMP
			#pragma	omp	parallel for
		#endif
		for (long index=0 ; index<long(lins.size()) ; index++) {
			Vd2	s = lins[index].S ;
			Vd2	e = lins[index].E ;
			Ed2	ext(s,e) ;
			Vd2	x ;
			if (get_cross_line(s,e,lh.S,lh.E,&x)) {
				if (::Is_point_in_extent(x,ext)) {
				//	pnts.push_back(x) ;
					}
				}
			if (get_cross_line(s,e,lv.S,lv.E,&x)) {
				if (::Is_point_in_extent(x,ext)) {
				//	pnts.push_back(x) ;
					}
				}
			{
				Vd2	h = ::get_near_on_line(s,e,pt) ;
				if (::Is_point_in_extent(h,ext)) {
					#ifdef	_OPENMP
						#pragma	omp	critical	(GetCross)
					#endif
					{
						work_pnts.push_back(h) ;
						if (work_pnts.size() > 10) {
							v_pnts.push_back(work_pnts) ;
							work_pnts.clear() ;
							}
						}
					}
				}
			}
		v_pnts.push_back(work_pnts) ;
		}
	return	v_pnts ;
	}

ループ部分の OpenMP 対応

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

error D8016: ‘/ZI’ と ‘/Gy-‘ は同時に…

VC 6 プロジェクトを VC 14 に変換してビルドすると,

------ ビルド開始: プロジェクト:GetX_1, 構成:Release Win32 ------
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(367,5): warning MSB8004: Intermediate Directory does not end with a trailing slash.  This build instance will add the slash as it is required to allow proper evaluation of the Intermediate Directory.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(368,5): warning MSB8004: Output Directory does not end with a trailing slash.  This build instance will add the slash as it is required to allow proper evaluation of the Output Directory.
  GetX_1.cpp
  GetX_1.vcxproj -> c:\Temp\Test\Fill\GetX_1\Release.140\GetX_1.exe
  GetX_1.vcxproj -> c:\Temp\Test\Fill\GetX_1\Release.140\GetX_1.pdb (Full PDB)
------ ビルド開始: プロジェクト:GetX_1, 構成:Debug Win32 ------
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(367,5): warning MSB8004: Intermediate Directory does not end with a trailing slash.  This build instance will add the slash as it is required to allow proper evaluation of the Intermediate Directory.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(368,5): warning MSB8004: Output Directory does not end with a trailing slash.  This build instance will add the slash as it is required to allow proper evaluation of the Output Directory.
cl : コマンド ライン error D8016: コマンド ライン オプション '/ZI' と '/Gy-' は同時に指定できません
========== ビルド: 1 正常終了、1 失敗、0 更新不要、0 スキップ ==========


/ZI と /Gy- は,
 デバッグ情報の形式   : エディット コンティニュのプログラム データベース (/ZI)
 関数レベルでリンクする : いいえ (/Gy-)

関数レベルでリンクする」をブランクに.
error D8016 への対応


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

RT-AC86U 追加 – 7

「AiProtection」-「脆弱性保護」のログ.

2018/05/10 08:23:49 27.92.169.109 156.232.254.26 404 /phpMyAdmin/phpMyAdmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:49 27.92.169.109 156.232.254.26 404 /phpmyadmin/phpmyadmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:46 27.92.169.109 156.232.254.26 404 /typo3/phpmyadmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:45 27.92.169.109 156.232.254.26 404 /claroline/phpMyAdmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:45 27.92.169.109 156.232.254.26 404 /pma-old/index.php GET     Mozilla/5.0
2018/05/10 08:23:42 27.92.169.109 156.232.254.26 404 /phpmyadmin-old/index.php GET     Mozilla/5.0
2018/05/10 08:23:42 27.92.169.109 156.232.254.26 404 /tools/phpMyAdmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:39 27.92.169.109 156.232.254.26 404 /phpMyadmin_bak/index.php GET     Mozilla/5.0
2018/05/10 08:23:39 27.92.169.109 156.232.254.26 404 /xampp/phpmyadmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:39 27.92.169.109 156.232.254.26 404 /myadmin2/index.php GET     Mozilla/5.0
2018/05/10 08:23:36 27.92.169.109 156.232.254.26 404 /phpmyadmin2/index.php GET     Mozilla/5.0
2018/05/10 08:23:35 27.92.169.109 156.232.254.26 404 /phpmyadmin1/index.php GET     Mozilla/5.0
2018/05/10 08:23:35 27.92.169.109 156.232.254.26 404 /phpmyadmin0/index.php GET     Mozilla/5.0
2018/05/10 08:23:32 27.92.169.109 156.232.254.26 404 /mysql-admin/index.php GET     Mozilla/5.0
2018/05/10 08:23:32 27.92.169.109 156.232.254.26 404 /mysqladmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:32 27.92.169.109 156.232.254.26 404 /admin/phpmyadmin2/index.php GET     Mozilla/5.0
2018/05/10 08:23:29 27.92.169.109 156.232.254.26 404 /admin/phpmyadmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:29 27.92.169.109 156.232.254.26 404 /admin/mysql2/index.php GET     Mozilla/5.0
2018/05/10 08:23:29 27.92.169.109 156.232.254.26 404 /admin/mysql/index.php GET     Mozilla/5.0
2018/05/10 08:23:28 27.92.169.109 156.232.254.26 404 /admin/PMA/index.php GET     Mozilla/5.0
2018/05/10 08:23:25 27.92.169.109 156.232.254.26 404 /web/phpMyAdmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:25 27.92.169.109 156.232.254.26 404 /dbadmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:25 27.92.169.109 156.232.254.26 404 /db/index.php GET     Mozilla/5.0
2018/05/10 08:23:22 27.92.169.109 156.232.254.26 404 /mysql/index.php GET     Mozilla/5.0
2018/05/10 08:23:22 27.92.169.109 156.232.254.26 404 /pmamy2/index.php GET     Mozilla/5.0
2018/05/10 08:23:22 27.92.169.109 156.232.254.26 404 /pmamy/index.php GET     Mozilla/5.0
2018/05/10 08:23:22 27.92.169.109 156.232.254.26 404 /PMA2/index.php GET     Mozilla/5.0
2018/05/10 08:23:18 27.92.169.109 156.232.254.26 404 /pma/index.php GET     Mozilla/5.0
2018/05/10 08:23:18 27.92.169.109 156.232.254.26 404 /pmd/index.php GET     Mozilla/5.0
2018/05/10 08:23:18 27.92.169.109 156.232.254.26 404 /phpMyAdmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:18 27.92.169.109 156.232.254.26 404 /phpmyadmin/index.php GET     Mozilla/5.0
2018/05/10 08:23:18 27.92.169.109 156.232.254.26   /index.php GET     Mozilla/5.0
2018/05/10 08:23:18 27.92.169.109:80 156.232.254.26 404 /wls-wsat/CoordinatorPortType GET     Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0

2018/05/21
時々,ブロックされた情報が更新されなくなるので,定期的に再起動させる設定に.
ルータの設定で,「詳細設定」「管理」-「システム」.
「基本設定」-「リブートスケジューラーの有効化」で「はい」に.
「再起動指定日」と「再起動指定時間」を設定.


2018/05/28
ブロック情報が更新されなくなると?,「リブートスケジューラー」の動作も効かなくなる.


2018/07/06
今日も「リブートスケジューラー」の再起動後正しく動作しなくなった.
ランプは全て白だったので有線 LAN は動作していたのかもしれない.
6/17 にも似た様な現象になったが,この時は WAN LED が赤だった?
結局,「リブートスケジューラー」は OFF にして様子見.

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

Note Station の設定

Note Station をインストールはしていたが,使用していなかった.
Synology NAS をもっと使えないかと調べていたら,このツールが Evernote と似た用途とあった.
DSM の「メインメニュー」から「Note Station」を選択.
起動直後に表示されるリンク,または「設定」ダイアログ内からデスクトップ版を入手.
デスクトップ版入手のメッセージ
Note Station 設定
デスクトップ版 Note Station は,QuickConnect だと簡単に接続できた.
Note Station ログイン
モバイル版は,Synology サイトのここから入ってインストール.
同様に入ろうとするが,なぜか入れない.
モバイル版 ログイン エラー
この方法がわかり難かった.
「アプリケーション ポータル」で note を設定.
「アプリケーション ポータル」での設定
LAN 内であれば 192.168.x.xxx/note と指定することで開ける様になった.
モバイル版 ログイン


2018/05/13
「File Station」のスマートフォン版「DS File」.
PC からのアクセス(ブラウザで ds116/file)はうまく動作するのに,DS file ではログインできないでいた.
が,今日操作すると入れるようになっている.
その間に弄ったところで思いつくのは,AC86U の「ポートフォワーディング」の設定.
WebDAV http 5005 192.168.1.216 TCP
WebDAV https 5006 192.168.1.216 TCP
設定を外しても動作しているので詳細は不明.


2019/10/25
ログイン方法がわからなくなったのでその画面をコピー.
Web Clipper ログイン画面

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

Synology NAS で文字色

別の事を調べていて,次の様な内容を見つけたので Synology NAS でやってみた.
C言語でターミナルで表示される文字をカラー表示させる
コードはそのまま拝借させてもらった.
ANSI escape code

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

RT-AC86U 追加 – 6

AiProtection で検出されていない?
よくわからないので,とりあえずルータを再起動.
その後は検出されるようになった.


2018/05/08 また,リストには表示されなくなっている.

試しに pixel.bilinmedia.net にアクセスすると,

保護はされているみたい.


先日設定した「アラート設定」だが,うまく動作していない?


AiProtection で検索していたら,動作テストのページへのリンクがあった.
ウイルスバスターCorp. 11.0, XG のWebレピュテーション機能テスト方法
不審接続監視機能(C&Cコンタクトアラート)の概要および設定の有効化について


2018/11/13
先日の再起動(2018/11/05)以来,AiProtection の動作リストは正しく表示されている.

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

/7205pxigag-7893.shtml へ…

1ヶ月位前からだと思うが,/7205pxigag-7893.shtml へのアクセスが増えた.
対象のファイル名は /????pxigag-???.shtml .
Log.txt
ログを見ると,2018/03/30 から.
利用している DDNS がいけないのか?

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

RT-AC86U 追加 – 5

追加してから 10 日程になる.今の所安定していると思う.
ただ少し気になるのが,スマートフォンからの「ネットワーク診断」.
うまくいくこともあるが,時々次の様な状態.

問題なく動作していると思うが,何で?

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

RT-AC86U 追加 – 4

AiProtection のログを見ると,かなりの件数.


これだけでも ASUS のルータにする価値はありそう.


2018/05/22
昨日届いたフィッシングメール.
そこにアクセスすると,

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

RT-AC86U 追加 – 3

24 時間位で検出されているので,AiProtection のアラート設定.

ASUS FAQ [AiProtection] アラートメールの設定方法


2018/04/26 悪質サイトとしてブロックされた所にアクセスしてみた.


こっちは,侵入防止システムの画像.

それでも,全てをガードできるわけではなさそう.

2018/04/26 13:33:00 27.92.169.109 120.24.170.24 404 /admin/index.php GET     Mozilla/5.0
2018/04/26 13:33:00 27.92.169.109 120.24.170.24 404 /mysql/index.php GET     Mozilla/5.0
2018/04/26 13:33:00 27.92.169.109 120.24.170.24 404 /pmamy2/index.php GET     Mozilla/5.0
2018/04/26 13:33:00 27.92.169.109 120.24.170.24 404 /pmamy/index.php GET     Mozilla/5.0
2018/04/26 13:33:00 27.92.169.109 120.24.170.24 404 /PMA2/index.php GET     Mozilla/5.0
2018/04/26 13:33:00 27.92.169.109 120.24.170.24 404 /PMA/index.php GET     Mozilla/5.0
2018/04/26 13:32:59 27.92.169.109 120.24.170.24 404 /pma/index.php GET     Mozilla/5.0
2018/04/26 13:32:59 27.92.169.109 120.24.170.24 404 /pmd/index.php GET     Mozilla/5.0
2018/04/26 13:32:59 27.92.169.109 120.24.170.24 404 /phpMyAdmin/index.php GET     Mozilla/5.0
2018/04/26 13:32:59 27.92.169.109 120.24.170.24 404 /phpmyadmin/index.php GET     Mozilla/5.0
2018/04/26 13:32:59 27.92.169.109 120.24.170.24   /index.php GET     Mozilla/5.0
2018/04/26 13:32:58 27.92.169.109:80 120.24.170.24 404 /wls-wsat/CoordinatorPortType GET     Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

RT-AC86U 追加 – 2

次に影響が少ない psc 2550 .
固定 IP を DHCP に変更して AC86U に接続したが,DHCP がうまく動作せず後回し.


AP の WN-AC1167R は,単純に繋ぎ変えだけで 192.168.1.xx に.
HDL-AH2W ,HVL-S3 を DHCP に.
DS115j ,DS116 を,DHCP に.
全てを AC86U に接続.BL190HW,AC86U,WR9500N などは何度か再起動.
PC なども ASUS Ruter アプリで確認しながら,必要に応じて再起動.
AP と子機の WR9500N も,繋ぎ変えだけで 192.168.0.2xx から 192.168.1.2xx になった.
何度か再起動が必要なものもあったが,DS11x を除いて移行できた.
psc 2550 も 192.168.1.x になり,固定 IP に設定.


DS115j と DS116 を固定 IP(192.168.1.216)に(以降 4 つ目の値は実際と異なります).
DS115j は公開してないので DHCP で良いが,IP で打つことが多いので固定にしている.
また,AC86U も WAN 側を固定(192.168.0.120)に.
27.92.169.109 — BL190HW — 192.168.0.120 — AC86U — 192.168.1.216
PC から tracert .

 1     1 ms     1 ms     1 ms  router.asus.com [192.168.1.1]
 2     1 ms     1 ms     1 ms  web.setup [192.168.0.1]
 3     *        *        *     要求がタイムアウトしました。
 4     5 ms     6 ms     6 ms  tmfACS001.bb.kddi.ne.jp [27.85.212.25]
 5    11 ms    12 ms    12 ms  27.80.241.61
 6    10 ms    10 ms    10 ms  27.80.241.238
 7    10 ms    10 ms    10 ms  jc-osa301.int-gw.kddi.ne.jp [113.157.227.82]
 8  ....

LAN 内から,エクスプローラなどではアクセスできるが,http でアクセスできない.
DSM コントロールパネルの「セキュリティ」-「ファイアウォール」-「custom」.
DS116 ファイアウォール設定
他に,Web アクセスの PHP も 192.168.1.x が有効となる様に変更.


この状態では,Web サーバとして外からアクセスできない.
BL190HW のポートマッピングの設定で,次のものを追加.
192.168.0.120 TCP any
Aterm BL190HW ポートマッピング設定
また DMZ の設定に 192.168.0.120 を.
AC86U の「ポートフォワーディング」の設定で次を追加.
HTTP DS116 80 192.168.1.216 TCP
RT-AC86U ポートフォワーディング設定
これで,外からは mish.myds.me にアクセスできる様になった.
この 5 時間程度,外からのアクセスは停止.


まだ LAN 内からは mish.myds.me でアクセスできない.
暫くわからず AC86U の IPv6 の関係と思い調べたが,あまり有用な情報は見つけられなかった.
試しに,「Passthrough」,自動接続を「有効」にすると,意図した動作となった.
RT-AC86U IPv6 設定


2018/11/13 ネットワークマップの表示
ネットワークマップ

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

RT-AC86U 追加

マニュアルのセットアップの部分を読み,Aterm BL190HW の空いた LAN ポートに接続.

設定用の PC は,T90Chi を利用.本当は,有線の方が良いのだろうが面倒だったので…
ハード的な接続後 AC86U の電源を入れると,赤い LED の表示が…
マニュアルによると WAN LED で「IP アドレスが取得できていない」とのこと.
PC から ASUS_00_2G(オープン)に接続すると,ID の設定画面に.
新しく入力して進めると WAN 側が設定され,PC から外への接続はできるようになった.
WAN LED のランプも「白」に.
ここまでは,BL190HW の下に既存の LAN 環境(192.168.0.x)と AC86U が存在する状態.
AC86U の WAN 側は 192.168.0.11 ,LAN 側は 192.168.1.11 .


LAN 内には外からアクセス可能にしているものがある.
WD Cloud
DS116
また,幾つかの機器は固定 IP.
HDL-AH2WHVL-S3,psc 2550,テスト環境の Web サーバなど.


先ず,他に影響を与えそうにない WD Cloud から.
固定 IP を外して,DHCP に.
AC86U に繋ぎ直すと,特に問題なさそう.
LAN 内で,\\WDCloud は OK.//wdcloud も.
スマートフォン用のアプリも問題なし.
4G 接続でのスマートフォン用アプリも OK.
192.168.0.x で接続している wdcloud.jp も問題なさそう.

WD Cloud のこの辺りの動作は良くできていると思う.


PC やスマートフォンなど動作状況を把握するために,
ASUS Router アプリ

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

球が作成できない

背景画像のアップロードで,球を生成してそれに貼り付ける.
コード自体はそれほど難しくないので,1 日位でできると思ってた.
Windows のコンソール AP で,次の様なコードを書いてテスト.
MakeBG.cpp
make_bg.hxx


#include "MessBar.hxx"
#include "i_Trace.hxx"
#include "gonsprm2.hxx"
#include "Htm_thrj.hxx"

//*******************************************************************************
// make bg files imo and html
// Create : 2018/04/19
//*******************************************************************************
inline bool MakeBG (c_tstring& dibPath)
{
    tstring ext = ::Path_GetExtLow(dibPath) ;
    if      (ext == _T("bmp")) { ;              }
    else if (ext == _T("jpg")) { ;              }
    else if (ext == _T("png")) { ;              }
    else                       { return false ; }
    {
        tstring imoPath = ::Path_ChangeExt(dibPath,_T(".imo")) ;
        tstring htmName = ::Path_ChangeExt(dibPath,_T(".html")) ;
        tstring dmpName = ::Path_ChangeExt(dibPath,_T(".ipl")) ;
        {
            long div = 90/5 ;
            v_Vd3A pntsAry = ::BuildSphere(div) ;
            {
                std::tout << pntsAry.size() << std::endl ;
                if (pntsAry.size() > 0) {
                    Vd3A pnts = pntsAry[0] ;
                    std::tout << pnts.size() << std::endl ;
                    }
                tstring str = ::v_V3_To_tstring(pntsAry,_T(",")) ;
                {
                    std::tout << str << std::endl ;
                    }
                ::SaveText(dmpName.c_str(),str) ;
                }
            v_Vd2A  txuvAry = ::SetTextureUV(pntsAry) ;
                    pntsAry = ::V3_Scale (pntsAry,Vd3(20.)) ;
            Gons1   gons1 = ::Gons_BuildFace(pntsAry,txuvAry,dibPath.c_str()) ;
            GonsA   ga ;
                    ga.push_back(gons1) ;
            Ed3     es = ::GonsA_GetExtent(ga) ;
            {
                std::tout << imoPath << _T("\t") ;
                std::tout << ::V3_To_tstring(es.Volume()) << std::endl ;
                }
            if (es.Volume() != Vd3(0)) {
                es = Ed3(es.L*0.01,es.G*0.01) ;
                ::GonsA_ToOBJ(ga,imoPath.c_str()) ;
                ::HT_Make_three_js_html(imoPath.c_str(),es) ;
                }
            }
        }
    return true ;
    }

//*******************************************************************************
// Make BG
// Create : 2018/04/19
//*******************************************************************************
int _tmain (int argc,TCHAR* argv[])
{
    _tsetlocale(LC_ALL,_T("")) ;
    {
        double s = sin(rad(30)) ;
        double c = cos(rad(30)) ;
        std::tout << ::To_tstring(rad(30)) << _T("\t") << ::To_tstring(s) << _T("\t") << ::To_tstring(c) << std::endl ;
        }
    if (argc > 1) {
        v_tstring argAry ;
        for (int index=1 ; index<argc ; index++) {
            tstring av = argv[index] ;
            ::MakeBG(av) ;
            }
        }
    else {
        tstring buf ;
        buf.resize(1000) ;
        {
            while (std::terr << _T("dib ? =") , std::tin.getline(&buf[0],buf.size()))
            {
                tstring str = buf.c_str() ;
                if      (str == _T("q"))   { break ; }
                else if (str == _T("Q"))   { break ; }
                str = ::QuotM_Del_All(str) ;
                if (str.empty())           { continue ; }
                if (::File_IsNothing(str)) { continue ; }
                tstring dib_file = str ;
                ::MakeBG(dib_file) ;
                }
            }
        }
    return 0 ;
    }

#include "MessBar.cxx"

今度は,DS116 でビルドして実行すると,

Iwao@DS116:/var/.../Test/up_bg/data$ ./a.out
0.523599        98314745853377985068733249901357667205561433229409406145971019710277043155206326909160297391588106447153156445277590513896008090831662627743743127151181611161993303763348552511914898438567008016612049817143085994563143448055356356529593034366351316506187159487365573007925410016860727208738652774465536.000000  98321247861193438769252981549279948821735544950351014769381393881588573259178110828643912278175146924986161470094082713103803921735703931192359519739047155548857037547932930737608178537416409042994283830606984599100883034181136178714087912736395732787698542049681305006129736011480288874859116047106048.000000
dib ? =

本当は,

C:\Users\Iwao\...\i_Tools.tmp>\\DevXP\C_Drive\Temp\DS11x\MakeBG\Release.060\MakeBG.exe
0.523599        0.500000        0.866025
dib ? =

cmath が使えない様で,検索すると「-lm でコンパイルが通る」と言うのは見つかる.
が,コンパイルの問題ではなく,実行でうまくない.


当然ではあるが,DS115j でも同様.
試しに,opkg update と opkg install gcc .
root@DS116:/var/…/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/…/Iwao# opkg install gcc
Upgrading gcc on root from 6.3.0-1 to 6.3.0-1a…
Downloading http://pkg.entware.net/binaries/armv7/gcc_6.3.0-1a_armv7soft.ipk
Configuring gcc.
root@DS116:/var/…/Iwao#
もう一度,ビルドして実行すると,
Iwao@DS116:/var/…/Test/up_bg/data$ g++ MakeBG.cpp
Iwao@DS116:/var/…/Test/up_bg/data$ ./a.out
0.523599 0.500000 0.866025
dib ? =
予想以上に時間がかかってしまったが,何とか…
daikoku_edit.html


2019/02/13 リンクなどを修正

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

PHP $_FILES

やってないとすぐ忘れてしまうのでメモ.
PHP マニュアル POST メソッドによるアップロード


php 側での次の様な取り出し.
 $tempfile = $_FILES[‘fname‘][‘tmp_name’];
fname‘ にあたる部分は,input タグの name 属性.
 <input type=”file” name =”fname” accept=”.jpg,.png”>


CHttpFile でのアップロード の場合は,汎用的になる様に処理している.

	function  uf_upload_files  ()  {
		$d_dir =  uf_get_upload_folder() ;
	//	echo	$d_dir	.  "<br/>\r\n" ;
		$up_status = false ;
		foreach	($_FILES as  $keys => $values) {
			$file_e	= $values ;
			$tempfile =         	$file_e['tmp_name'] ;
			$filename = $d_dir .	$file_e['name'] ;
			$filename = uf_get_up_file_name($filename) ;
			if (is_uploaded_file($tempfile)) {
				$up_status = move_uploaded_file($tempfile,$filename) ;
				}
			}
		return	$up_status ;
		}
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

アップロード先のアクセス権

次の様な htm と php で,画像をアップできる所を用意.


up.htm

<!DOCTYPE html>
<html lang="ja" >
  <head >
    <meta charset="UTF-8" />
    </head>
  <body >
    <form action="http:./up.php" method="post" enctype="multipart/form-data">
      <input type="file" name ="fname" accept=".jpg,.png">
      <input type="submit" value="upload">
      </form>
    </body>
  </html>

up.php

<?php
  $tempfile = $_FILES['fname']['tmp_name'];
  $fileName = './data/' . $_FILES['fname']['name'] ;
  $up_status = false ;
  if (is_uploaded_file($tempfile)) {
    $up_status = move_uploaded_file($tempfile , $fileName ) ;
    }
  $frm_src = './' ;
  if ($up_status) {
    $frm_src = $fileName ;
    }
  header("Location: {$frm_src}") ;
  ?>

これらのファイルとアップ先のフォルダを用意しただけでは,アクセス権がないのでアップロードできない.
以前は,DSM に入り「File Station」で「権限」を設定していた.
今まで面倒と思いつつ,試しに Windows 環境からアクセス権を「読み取り(RX)(RX)」から「変更」に.

File Station で設定したものと少し異なるが,それなりに動作してそう.


up.htm と up.php

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

WinFile.exe

Google ニュースで,次の内容を見つけた.
Windows 3.x時代の“ファイルマネージャ”がオープンソース化で復活~Windows 10でも利用可能に
WinXP までは,1999/10/14 8:00:00 の WinFile.exe を使用している.
Win7 でも動作させるための方法があって,試したこともあるがうまく動作しなかった.
Windows File Manager revived


次の所から落として動作を確認してみた.
WinFile v10.0 – Sharing 10 years of improvements
Winfile_orig_plus.zip の方がオリジナルに近いのでやってみたが,設定情報が保存されないみたい.
Winfile_v10.0.zip は,「Properties」などが新しくなってしまっている.


2019/05 v10.0.1901.1 で内容を更新しています.
WinFile.exe v10.0.1901.1

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

コンソール AP で C2065 C2059

コンソール AP で,ビルドすると

--------------------構成: T_S_xxx - Win32 Debug--------------------
コンパイル中...
T_S_xxx.cpp
\\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2065: 'CListCtrl' : 定義されていない識別子です。
\\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2065: 'ctrl' : 定義されていない識別子です。
\\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2059: 構文エラー : 'const'
\\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2143: 構文エラー : ';' が '{' の前に必要です。
\\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2447: '<L_PROPERTY>' : 関数ヘッダがありません (旧形式の仮引数リスト?)
...
\\devs\documents\develop\_.src\_yet\list.hxx(159) : error C2061: 構文エラー : 識別子 'CListCtrl' がシンタックスエラーを起こしました。
\\devs\documents\develop\_.src\_yet\list.hxx(169) : error C2061: 構文エラー : 識別子 'CListCtrl' がシンタックスエラーを起こしました。
...
\\devs\documents\develop\_.src\...\.....cpp(2017) : fatal error C1903: 直前のエラーを修復できません; コンパイルを中止します。
cl.exe の実行エラー

T_S_xxx.exe - エラー 24、警告 0

#include <AfxCmn.h> を追加.

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

MAPI の MapiFileDesc の配列

MFC を使用している方法では,

    LateDelete	ld ;    //  MultiByte の必要があるようなので,UNICODE の時のバッファをここに登録
    //	添付ファイルの準備
    CArray<MapiFileDesc,MapiFileDesc>	fileDescA ;
    int	fileCount = 0 ;
    int	index = 0 ;
    for (index=0 ; index<PathNames.GetSize() ; index++) {
        CString	    pathName = PathNames[index] ;
        if (::FileIsNothing  (pathName))	{	continue ;	}
        if (::FileIsDirectory(pathName))	{	continue ;	}
        MapiFileDesc	fileDesc ;
        memset(&fileDesc,0,sizeof(MapiFileDesc)) ;
        fileDesc.nPosition		= (ULONG)-1 ;
    #ifdef	_UNICODE
        fileDesc.lpszPathName	= SendMail__ChangeMultiByte(PathNames[index],&ld) ;
        fileDesc.lpszFileName	= SendMail__ChangeMultiByte(FileNames[index],&ld) ;
    #else
        fileDesc.lpszPathName	= LPSTR(LPCTSTR(PathNames[index])) ;
        fileDesc.lpszFileName	= LPSTR(LPCTSTR(FileNames[index])) ;
    #endif
        fileDescA.Add(fileDesc) ;
        fileCount++ ;
        }

MFC を使用しないコードは,

    std::vector<MapiFileDesc>	fileDescA ;
    std::vector<std::string>	pathNameA ;
    std::vector<std::string>	fileNameA ;
    int	index = 0 ;
    {
        for (index=0 ; index<PathNames.GetSize() ; index++) {
            {
                tstring	pathName = PathNames[index] ;
                if (::File_IsNothing  (pathName))	{	continue ;	}
                if (::File_IsDirectory(pathName))	{	continue ;	}
                }
            std::string	pathName= ::To__string(PathNames[index]) ;
            std::string	fileName= ::To__string(FileNames[index]) ;
            pathNameA.push_back(pathName) ;
            fileNameA.push_back(fileName) ;
            }
        {
            for (size_t index=0 ; index<pathNameA.size()&&index<fileNameA.size() ; index++) {
                MapiFileDesc	fileDesc ;
                memset(&fileDesc,0,sizeof(MapiFileDesc)) ;
                fileDesc.nPosition	= (ULONG)-1 ;
                fileDesc.lpszPathName	= &(pathNameA[index])[0] ;
                fileDesc.lpszFileName	= &(fileNameA[index])[0] ;
                fileDescA.push_back(fileDesc) ;
                }
            }
        }

詳しくは見てないが,幾つかの方法が書かれていたので
Sending Email with MAPI


MapiRecipDesc.lpszAddress の “smtp:”
以前コードを直したのが 2002/4 であまり情報がなかった様に思う.
個人的に書いた内容が「Outlook で配信不能になる
参考になりそうな所
Email mit Dateien perWinAPI versenden??
MAPISendMail
MSDN MapiRecipDesc structure
Sending email using MAPI causes error on ‘ResolveName’ function in Window7


MAPI を使用した複数ファイルの送信
S_Mail.hxx

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