ホーム » Iwao の投稿 (ページ 11)

作者アーカイブ: Iwao

2024年3月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カテゴリー

アーカイブ

ブログ統計情報

  • 77,446 アクセス



Jetpack Boost の影響?

このページもそうだが,
WordPress のページにつけている「QR コード」が意図した位置に表示されていないことに気づいた.


先日,表示が速くなるかなと思い「Jetpack Boost」の設定を変更した.
どうもこれが影響していたみたい.
Jetpack Boost 「必須ではない JavaScript を後回しに」
「必須ではない JavaScript を後回しに」の機能を「OFF」に.


* QRコードは株式会社デンソーウェーブの登録商標です.
https://www.qrcode.com/faq.html#patentH2Title


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

再起動マネージャ

何年か前に有効にした「再起動マネージャ」.
VC 2010 再起動マネージャ
Restart Manager in MFC
MFC 再起動マネージャ
その実装がうまくなかった.


編集操作中に「自動保存」が動作すると,意図しない状態になってしまうことがあった.
原因は,実装方法がうまくないだけではあるが,なかなか難しい.
Serialize が呼ばれた時に,一部の情報を更新しているため,例えば選ばれているものに影響を与えてしまう.
実際はデータに応じて選択状態が変わるのだが,それに気づかず操作してしまうことがある.


これとは別にバックアップ機能を持っているので「自動保存」が動作しない様に修正することに.
本当はこれだけでは足りない.
編集操作中に「上書き保存」された時も同様に動作するため,この部分の修正が必要か?
ユーザが意識している操作なので,現状のままとするか?

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

VS Installer

久しぶりにインストーラを…
今までのものは「VS インストーラ」.


前も使ったが忘れていた.アンインストールで,ファイルをそのまま残す設定.
「Permanent」を「True」に.
アンインストール時,ファイルをそのまま残す


ショートカットなどを作成すると,アンインストール時に時間がかかってしまう.
それで,以前は使ってなかったが,更新版のインストール.
「RemovePreviousVersions」を「True」に.
「Version」を更新する.同様に exe などの更新も必要.bmp などはタイムスタンプでいける?
更新版の設定


Patching and Upgrades

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

VS 2022 インストール

VS 2022 があったのでインストール.

共通の C の include などは VC 10 からの設定が引き継がれている(同じ所).

フォールバックの設定を E:\Temp\_Fallbck に.
VC 2022 フォールバックの設定

MFC などランタイムは VC 2015 以降同じもの.

3D ビューアをビルドしたが,その範囲では,特に目立った違いはなさそう.

Current という表現は何なんだろうか?




VC のランタイム vc_redist.x86.exe などは次の所にまとめている.
https://mish.work/joomla/index.php/cpp/ref-vcredist-xxx-exe.html
VC 2015 から 2022 までは,同じもので動作する.

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

AS5202T VirtualBox に WS2022

ASUSTOR NAS AS5202T の VirtualBox 環境に Windows Server 2022 のインストール.
最初,リモート接続するための設定箇所がわからなかった.
Net Address の所に,アドレス(127.0.0.1 だったと思う)が入っていて,それをクリアする必要があった.
VirtualBox Remote Display Net Address をクリア
あとは,通常の手順.
ASUSTOR NAS に WS2022 インストール


「Ctrl」+「Alt」+「Delete」にあたるものがわからなかったが,これは,「Ctrl」+「Alt」+「End」.
「Ctrl」+「Alt」+End」


マウスの位置がずれていたが,VirtualBox Guest Additions を入れて対応.


VS 6 と SP6 を入れて,今の所デバッグなどもできている.
https://dev.mish.work/wordpress/2021/06/10/win-10-vs6-install/


2021/11/10
リモートデスクトップ内の画面コピーは,「Ctrl」+「Alt」+「+」.
アクティブウィンドウのコピー     「Ctrl」+「Alt」+「-」.


2021/11/29
LAN 上の他の PC からの参照は問題なさそうだが,WS2022 から他の PC への参照が非常に遅い.
以前同じ様な環境に Win10 を入れていたが,この時も他からの参照のみだったので気づかなかった.
PC 上の仮想マシン は,速くはないが使えるレベル.NAS なので,これが限度か?


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

WS2022 ASP ActiveX dll exe の設定

必要に応じてファイアウォールの設定.
ファイアウォールの設定
オートメーションを使用しているのでエラーになる.
500 Internal server error.
サーバ上で確認すると,
An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.
An error occurred on the server when processing the URL. Please contact the system administrator. If you are the system administrator please click here to find out more about this error.
「ASP」-「機能を開く」で「ブラウザへのエラー送信」を「True」に
「ASP」-「機能を開く」で「ブラウザへのエラー送信」を「True」に


Server オブジェクト エラー ‘ASP 0177 : 800401f3’
Server.CreateObject に失敗しました
/_LIB_/L_Mainte.asp, 行 33
800401f3
Server オブジェクト エラー 'ASP 0177 : 800401f3' Server.CreateObject に失敗しました /_LIB_/L_Mainte.asp, 行 33 800401f3
エラーは Server.CreateObject を呼んでいる所.
set oFCnt = Server.CreateObject("AsFile.Counter")
AsFile.dll を登録
AsFile.dll を登録
この dll は 32 ビットなので「32 ビット アプリケーションの有効化」.
32 ビット アプリケーションの有効化
次の様な asp を実行してテスト.
<%@ Language=VBScript %>
<% Option Explicit %>
<HTML>
<BODY>
<%
on error resume Next
dim oFCnt : set oFCnt = Server.CreateObject("AsFile.Counter")
dim oImgC : set oImgC = Server.CreateObject("AsImageConverter.Application")
Response.Write "AsFile Count.." & oFCnt.GetVersion & "<br>" & vbCrLf
Response.Write "AsImgC App …" & oImgC.GetVersion & "<br>" & vbCrLf
%>
</BODY>
</HTML>
AsimageConverter は exe でまだ登録していない状態.
CheckAS.asp  AsFile
「管理者」として起動したコマンドプロンプトで,AsImgCnv.exe を登録.
AsImgCnv.exe を「管理者」として実行して登録.
「コンポーネント サービス」で,IUSR が起動できるように設定.
32 ビット exe は,そのままの comexp.msc の起動では表示されない.
「 %windir%\system32\comexp.msc /32 」の様に /32 のオプションの指定が必要.
「セキュリティ」タブ-「起動と…」-「カスタマイズ」-「編集」.
「IUSR」を追加して「ローカルからのアクティブ化」にチェック.
「IUSR」を追加して「ローカルからのアクティブ化」にチェック
これで 32 ビットのオートメーション dll と exe が起動できるようになる.
オートメーション dll と exe の起動の確認


「ODBC データソース 32 ビット」の設定.
ODBC データソース 32 ビット
設定直後は,次のエラーになることがある?
Provider エラー ‘80004005’
この場合は OS を再起動すればうまく動作する 様になる.


参考にさせてもらったところ.
64bit Windows 環境で 32bit の DCOM コンポーネントを登録しても一覧に表示されない
64bit版Windowsでx32bit版のDCOMが表示されない

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

WS2022 Classic ASP インストール

Windows Server 2022 を VirtualBox 仮想マシンにインストール.
Windows Server 2022 インストール
Windows Server 2022 インストール OS の選択
Windows Server 2022 インストール カスタムを選択
Windows Server 2022 インストール中
Windows Server 2022 インストール完了
特に難しい所はない.


続いて Classic ASP のインストール.
「サーバーマネージャー」で「管理」-「役割と機能の追加」.
「サーバーの役割」で「Web サーバー(IIS)」を選択.
「Web サーバー(IIS)」を選択
「役割サービス」で「ASP」を選択.
「役割サービス」で「ASP」を選択
ASP をインストール.
ASP をインストール


簡単な asp ファイルを作成.
MSDN 2001/10
mk:@MSITStore:C:\Program%20Files%20(x86)\Microsoft%20Visual%20Studio\MSDN\2001OCT\1041\jpiis.chm::/iishelp/iis/htm/asp/iiwabasi.htm


<%@ Language=VBScript %>
<HTML>
<BODY>
This page was last refreshed on <%= Now() %>.
</BODY>
</HTML>
Classic ASP の動作テスト


参考にさせてもらったところ.
Windows Server 2022 にIIS 10.0をインストールし、ASP.NETを有効化
windows server 2016で、classic asp を有効化
Windowsの機能の有効化(Windows Server 2016)
Windows のパスワードの複雑性の要件を無効にする (Windows Server Tips)
繋がらない!Windows10で共有フォルダにアクセスできない時の対処法


次のツールも問題なく動作した.
Win10 用 タイトルバーの色設定


2021/11/08
入っている MFC*.dll .
WS2022 に入っている MFC*.dll
WS2022 に入っている MFC*.dll
WS2022 に入っている MFC*.dll


2021/11/09
共有フォルダにアクセスしようとすると,アクセスできない.
[Window Title]
ネットワーク エラー
[Main Instruction]
\\WS2022 にアクセスできません
[Content]
名前のスペルを確認しても問題がない場合は、ネットワークに問題がある可能性があります。ネットワークの問題を識別して解決するには、[診断] をクリックします。
[^] 詳細を非表示にします [診断(D)] [キャンセル]
[Expanded Information]
エラー コード: 0x80070035
ネットワーク パスが見つかりません。
エラー コード: 0x80070035 ネットワーク パスが見つかりません。
Win7 環境や Win10 20H2 などからは問題なくアクセスできる.
グループポリシーでゲストログオンを許可する」必要があった.
グループポリシーでゲストログオンを許可する


ASP ActiveX dll exe の設定など

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

サーチコンソールの警告と VirusTotal

以前から,このサイトで「一般的ではないダウンロード」の警告が表示されている.
「一般的ではないダウンロード」の警告
対応方法がわからずそのままとなっていた.


ウィルス対策ソフト 誤検知」などで調べていて,VirusTotal を見つけた.
同じコードでも VC の異なるバージョンでビルドしたもので結果が異なる.

VC 8 11 12 141 142
GLSm 0 Cylance
Unsafe
0 Cylance
Unsafe
0
i3DC 0 Cylance
Unsafe
Microsoft
Trojan:Win32/Sabsik.FL.B!ml
Microsoft
Trojan:Win32/Sabsik.FL.B!ml
0
i3DV 0 Cylance
Unsafe
Microsoft
Trojan:Win32/Sabsik.FL.B!ml
0
S_as SecureAge APEX
Malicious
SecureAge APEX
Malicious
0 0
TDIB 0 Cylance
Unsafe
0 0

VC 6   SecureAge APEX Malicious
VC 9   SecureAge APEX Malicious , VBA32 Heur.Malware-Cryptor.Hlux
VC140  Cylance Unsafe
VC 10 , 142 は 0 .
これで順につぶしていけば,「一般的ではないダウンロード」の警告はなくなるか?

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

削除中にエラーが発生しました

また,削除できないキーができてしまった.
[Window Title]
キーの削除エラー
[Content]
・ を削除できません。削除中にエラーが発生しました。
[OK]
レジストリエディタ キーの削除エラー
RegDelNull を探すと,場所が変わっていた.
RegDelNull v1.11
使い方は以前と同じ

Microsoft Windows [Version 10.0.19043.1288]
(c) Microsoft Corporation. All rights reserved.

C:\Users\Iwao>cd %TMP%

C:\Users\Iwao\AppData\Local\Temp>J:\Download\Tools\MS\Regdelnull\RegDelNull.exe

RegDelNull v1.11 - Delete Registry keys with embedded Nulls
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Scan complete.


C:\Users\Iwao\AppData\Local\Temp>J:\Download\Tools\MS\Regdelnull\RegDelNull.exe hkcu\SOFTWARE\Iwao\****\x86\BAPMan

RegDelNull v1.11 - Delete Registry keys with embedded Nulls
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Null-embedded key (Nulls are replaced by '*'):

HKCU\SOFTWARE\IWAO\****\X86\BAPMAN\?*

Delete? (y/n) y
Key successfully deleted.

Scan complete.


C:\Users\Iwao\AppData\Local\Temp>

RegDelNull の使い方

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

::SetWindowPos(hWnd,…)

wndTopMost で,Z オーダーの最前面に.

{
	CRect	rect ;
	GetWindowRect(&rect) ;
	SetWindowPos(&wndTopMost,rect.left,rect.top,0,0,SWP_NOSIZE|SWP_NOACTIVATE) ;
	}

幾つかの環境ではこれでうまく動作している.


今日作成したツールの CMSetNmTDlg::OnInitDialog() にこれを追加.
omp_set_num_threads
Win10 のホスト環境で最前面に移動しない.
仮想マシンで試すと意図した動作.
ホストの,以前に起動したツールは前面のまま保持された.
が,一度終わらせて再起動したら,最前面にならなくなった.
ちょっとよくわからないが,何かが邪魔しているのか?
PC を再起動すれば直るかもしれないが…
とりあえずメモ.


2021/10/25
explorer.exe の再起動でうまく動作する様になったみたい.


他 AP などからの操作の場合 SetForegroundWindow


2023/07/12
Windows API だと次の様に指定できる.

::SetWindowPos(this->GetSafeHwnd(),HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE) ;

2 つ目の引数は次のものが指定可能.

#define HWND_TOP        ((HWND)0)
#define HWND_BOTTOM     ((HWND)1)
#define HWND_TOPMOST    ((HWND)-1)
#define HWND_NOTOPMOST  ((HWND)-2)

::SetWindowPos   Flags

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

ADM 更新で WordPress が…

スマートフォンの AiMaster で ASUSTOR NAS にアクセスすると ADM のアップデートがあった.
特に気にすることなく更新.
その後,この NAS の WordPress のページにアクセスしようとすると開けない.404 になってしまう.
AiMaster ではわかり辛いので,今度は PC から ASUSTOR NAS へアクセス.
すると WordPress などがグレーになっている.
ネットワーク上などから WordPress のフォルダも見えない.



App Central で確認すると WordPress などの機能が無効(OFF)になっている.
画像をとり損ねたが,ON にしようとすると「MariaDB の更新が必要」とのメッセージが表示された.
MariaDB に入ると更新が始まった.
ADM 4  MariaDB 更新
更新後,App Central で WordPress などを ON に.
ちゃんと動作する様になった.

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

FBX SDK 2020.2.1 に更新

FBX SDK を 2020.2.1 に更新.
プロジェクト設定の,インクルードとライブラリのディレクトリを変更.
C:\Program Files\Autodesk\FBX\FBX SDK\2020.2.1\include;%(AdditionalIncludeDirectories)
FBX SDK 2020.2.1 include
C:\Program Files\Autodesk\FBX\FBX SDK\2020.2.1\lib\vs2019\x86\$(Configuration);%(AdditionalLibraryDirectories)
FBX SDK 2020.2.1 Lib
特に問題なくビルド完了.動作テストはこれから.


#pragma comment (lib, “LibFbxSDK-MD.lib”) などの設定は次の所に書いている.
https://jml.mish.work/index.php/cpp/fbx-sdk-setting.html

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

高 DPI

先日の更新で,ツールバーのボタンが小さくなった?という報告を受けたので,ちょっとまとめてみた.

DPI 認識 DPI 対応 「互換性」タブ
なし 非対応 システム
高い DPI 認識 システム  
モニターごとの高い DPI 認識 モニターごと アプリケーション

プロジェクトの「プロパティ」-「マニフェストツール」-「DPI 認識」
「タスクマネージャー」での表示
上から,非対応,システム,モニターごとx2 .下から 2 つ目は,100% のディスプレイから移動したもの.
GLSmth の「バージョン情報」

高 DPI デバイスでの Windows のスケーリングの問題
PROCESS_DPI_AWARENESS enumeration (shellscalingapi.h)
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\ShellScalingApi.h

いろいろ試したが,特にツールバーボタンの関係ではわからなかった.


2021/10/14
どうも,プライマリディスプレイの設定によりスケーリング動作が異なる?
ImageLook タスクマネージャ
125% にしたもの.
プライマリディスプレイを 125% に
右下の 3 つのツールバーとダイアログの大きさなどがスケーリングされない.
それら以外の,メニューやステータスバーなどは正しくスケーリングされている様に見える.
VirtualBox の「スケールモード」で 80% 程度にしたもの.
80% 程度にして,ホストのウィンドウを重ね合わせ


exe のプロパティで「アプリケーション」としたもの.
exe のプロパティで「アプリケーション」に
ダイアログのフォントに固定サイズのものを使用しているので少し文字間隔が広くなってしまっている.
https://jml.mish.work/index.php/i-tools/setcolt.html

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

コンソール AP での色

以前に NAS に SSH 接続した環境で,文字色などの変更 をやった.
確か DOS 時代に少し使った記憶があるが,コンソール AP で使ってみたいと思い調べてのメモ.


先ず,コマンドプロンプトでの動作から.
echo ^G
echo Ctrl+G   BEL
‘^G’ の入力は,「Ctrl」+「G」.
「Enter」すると,ブザー(BEL)が鳴る.
今度は,次の様なバイナリデータのファイルを用意しての表示.
ESC シーケンス バイナリデータ
それを type で表示する(Linux 環境などでは cat ).
type esc.txt
type esc.txt の結果
echo を使っての ‘ESC [‘ 入力がわからなかったが,いろいろ試すと「Ctrl」+「[」で入った.
echo ^[[103m
echo ^[[30m
echo ^[[103m    echo ^[[30m
最初わからなかったが,Linux 環境などでは
echo -e “\x1b[103m”
BEL の所に書いてあった.


以前試した時もそうだったと思うが,コマンドプロンプトでそのまま実行してもうまく機能しない.
またその頃はまだメインの開発機は Win7 だったこともありそれ以上は試していなかった.
以前の T_esc 2018 05 exe
一度ファイルにリダイレクトして type すると意図した動作になる.
Windows ESC CSI」で検索すると次の所が見つかる.
コンソールの仮想ターミナル シーケンス
ここを見ると ::SetConsoleModeENABLE_VIRTUAL_TERMINAL_PROCESSING を指定するとある.
それで次の様なコードで試すとうまくいった.

#ifdef		_WIN32
	#ifdef	ENABLE_PROCESSED_OUTPUT
		#ifndef	ENABLE_VIRTUAL_TERMINAL_PROCESSING
		#define	ENABLE_VIRTUAL_TERMINAL_PROCESSING	0x0004
		#endif
	#endif
#endif
//	...
{
//	...
	can_CSI = true ;
	#ifdef		_WIN32
		BOOL	can_ESC = FALSE ;
		#ifdef	ENABLE_PROCESSED_OUTPUT
			HANDLE	hout =	::GetStdHandle(STD_OUTPUT_HANDLE) ;
			DWORD	mode = 0 ;
					::GetConsoleMode(hout,&mode) ;
				mode|= ENABLE_VIRTUAL_TERMINAL_PROCESSING ;
			can_ESC =	::SetConsoleMode(hout, mode) ;
		#endif
		can_CSI = (can_ESC == TRUE) ;
	#endif
	if (change_bg) {
		if (can_CSI) {
			std::terr << _T("\x1b[107m") ;
			std::terr << _T("\x1b[30m") ;
			std::terr << _T("\x1b[0J") ;
		//	std::terr << _T("\x1b[;H") ;
			}
		}
//	...
	}

CSI.hxx
CSI クラスを使用したもの
ちょっとうまくない部分もある?が,何とか.


python だと

from ctypes import windll , wintypes , byref
kernel = windll.kernel32
hout = kernel.GetStdHandle(-11)
mode = wintypes.DWORD()
kernel.GetConsoleMode(hout,byref(mode))
mode.value |= 4
kernel.SetConsoleMode(hout,mode)
print ('\033[96m')

参考にさせてもらったところ.
第3章5 エスケープシーケンスで文字の色、背景の色を変更


2023/03/24
次の様に利用できる.

#include	<iostream>

#include	"CSI.hxx"
#include	"tstring.hxx"

int	_tmain	(int argc,TCHAR* argv[])
{

	CSI	csi ;

	{
		tstring	buf ;
		buf.resize(1000) ;
		std::terr << _T("wait...") ;
		std::tin.getline(&buf[0],std::streamsize(buf.size())) ;
		}
	return	0 ;
	}

CSI クラスの利用

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

CCmdUI::SetText

以前,VC 11 以降で メニューのテキストがうまく更新できない 現象があった.
この時,オーナードローを使っている所は解決した(個人的なコードのバグだった).
が,普通のサブメニューの方はうまくないままとなっていて,それを今回改めて調べてみた.


デバッガで追いかけると,CcmdUI::SetText は呼ばれている.
MFC のコードを見ると,ModifyMenu と SetMenuItemInfo の違いがある.
MFC 10 と 11 の CCmdUI::SetText


サブメニューの場合にうまくないのかと思い,単体テスト用のコードを書いてみたが,再現できない.

void CM_textView::OnUpdateMenuItem(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CString	now = CTime::GetCurrentTime().Format(_T("%H:%M:%S")) ;
	pCmdUI->SetText(now) ;
	}

void CM_textView::OnMenuItem(UINT nID) 
{
	// TODO: Add your command handler code here
	}

何か他の条件があるみたい.


CMenu::TrackPopupMenu で表示するメニューではうまく更新されている.
メニューバーの項目としてコマンドを割り当て,そこから TrackPopupMenu を呼出すことで対応.

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

DSM 7 と WordPress , Joomla!

2021/07 に Synology NAS の DSM を更新
WordPress は動作しているが Joomla! はうまくないまま.


今日 Maria DB と WordPress ,Joomla! の更新版があったので更新した.
DSM 7  WordPress
前回と同様 でうまく開かない.
WordPress のインストールされたところをみると .htaccess が存在しない.
以前バックアップしたものをコピー.
これで WordPress はうまく動作する様になった.
Joomla! の方は相変わらず.


2022/02
Joomla! は …/joomla/index.php/… の形式であれば問題ない.
そのため,直接参照している所に index.php/ を付加することで対応した.

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

VC リリースビルドのデバッグ

先日の VC 6 でのリリースビルドでうまくなかった現象
これをデバッグするための設定.
以前から何度か使っているが,今回コンパイル時の設定部分が何故かすぐにわからなかったのでメモ.
リリースビルドのデバッグ コンパイル設定
同様に,リンクの設定でも「Generate debug info」のチェックが必要.
方法: リリース ビルドをデバッグする

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

VS 6 RTM bug … ?

Win10 環境に入れた VC 6 でビルドした exe をテストしていると…
VC 6 RTM
「何か修正を間違えた?」と思い,幾つかの exe で実行するとうまくいく.
VC 6 SP6
VC 14 などでビルドしたものや,VC 6 デバッグビルドのものは OK .
2021/06 頃からの VC 6 リリースビルドのものがうまくなさそう.
WinXP 環境の VC 6 でビルドしたものも OK .
Win10 に入れた VS 6 が英語版だったので,SP はまだ入れていない.


2021/08/17
VC 6 RTM で作成される exe がうまくないものと思われる.
3D データ変換の状況


2021/08/18
次の様なコードでテストすると ::GonsA_Triangulation で長方形の片方が消えてしまう.

	GonsA	gnsa = ::To_GonsA(_3d_file) ;
	     	gnsa = ::GonsA_Triangulation(gnsa) ;
	::GonsA_Toix3(gnsa,(out_name+_T(".ix3")).c_str()) ;
	::GonsA_ToOBJ(gnsa,(out_name+_T(".imo")).c_str()) ;
	::GonsA_ToWRL(gnsa,(out_name+_T(".wrl")).c_str()) ;

その後いろいろとデバッガでやってみたが,その中は限定できなかった.
最適化の「実行速度」以外では,現象は発生しない.


結局 SP 6 をインストールすることに…
が,インストールできない.
VS 6 SP 6 was not completed successfully
対応方法がわからないので,仮想マシンの Win10 Pro x64 にインストールしてみるとうまくいった.
ちょっと面倒(ビルド時間がかかるなど)だが,動かないよりは良いので併用か?


2021/08/19
仮想マシンの VC 6 のデバッグ.
一度ブレークさせると,その後ステップ実行できない.

---------------------------
Microsoft Visual C++
---------------------------
Unhandled exception in GLSm.exe (OLE32.DLL): 0xC0000005: Access Violation.
---------------------------
OK   
---------------------------

VC 6 ブレーク後のステップ実行で 0xC0000005
同じタイミングでインストールした Win7 x64 環境ではうまく動作している.

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

JavaScript module Three.js

前回 Three.jsバージョンを更新 した時に気づいていたがそのままになっていたので少し調べてみた.
きっかけは,今まで r109 だったものを r131 にしようかと …
three.module.js は r83 ぐらい? example が module 対応になったのは r105 の頃か?
r105 と r106 の ./example/js/loaders/OBJLoader.js の内容は同じ.
./webgl_loader_obj_mtl.html は import 部分と THREE が異なる.JavaScript のコードとしては同じ?


次の所を参考に,いろいろと…
JavaScript モジュール
そこにある basic-modules を,import でない方法で書き直し.
main.js を html 内の body に取り込み.
最初,間違って head 内に書いたら create でエラー(document.body が null).
また,canvas.js 内に export が存在するとうまくいかず,js をコピーして,その行をコメントに.
script src=".../canvas_.js"
それを import を使用した方法に.
main.js を直接 body 内に記述したもの.
script type="module"


*.js をどちらの場合も同じものとしたいが,方法は?


2021/06/06
Three.js で,同じ OBJLoader.js を使っているのかと思ったが,違った.
example/js/OBJLoader.js と example/jsm/OBJLoader.js が存在している.


ある程度 module を使うための変更内容がわかったので,既存のデータを変更してみた.
データはいつもの.http://mish.work/i_Tools/Doc/blog/3D_Data/Cube_2021_07.htm
r109 を利用している.それを r131 に変更.
r131 に変更したもの
c_3js_10.js の先頭に次のもの追加.

import	* as THREE        	from '/_lib/js/webgl/threejs/r131/build/three.module.js';
import	{ OrbitControls } 	from '/_lib/js/webgl/threejs/r131/examples/jsm/controls/OrbitControls.js';
import	{ MTLLoader }     	from '/_lib/js/webgl/threejs/r131/examples/jsm/loaders/MTLLoader.js';
import	{ OBJLoader }     	from '/_lib/js/webgl/threejs/r131/examples/jsm/loaders/OBJLoader.js';

最後に以下を追加.

export	{	ThreeStart10	} ;
export	{	ThreeStartF 	} ;

html を type="module" と import …/c_3js_10.js に.

<script	type="module">
	import	{	ThreeStart10	}	from	"./c_3js_10.js" ;

type module , import
実行すると幾つかのエラー.

Uncaught TypeError: THREE.OrbitControls is not a constructor
    Set_orbit http://mish.work/i_Tools/Doc/blog/3D_Data/c_3js_10.js:137
    ThreeStart10 http://mish.work/i_Tools/Doc/blog/3D_Data/c_3js_10.js:47
    <anonymous> http://mish.work/i_Tools/Doc/blog/3D_Data/Cube_2021_08.htm:42

Uncaught TypeError: THREE.OrbitControls is not a constructor
OrbitControls などクラスの利用部分が違う.THREE. の部分を削除.
THREE. 部分を削除
module を使用した方法に変更
表示されている QR コードは,以前 WebGL が動作しない環境の時の区別のためのもの.
これはうまく使えないみたいなので,その部分は削除.他に “use strict”; なども削除.
module を使用


html の script の部分で type="module" が指定されていないと,

Uncaught SyntaxError: import declarations may only appear at top level of a module Cube_2021_08_E2.htm:19:3

type="module" が指定されていない時のエラー

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

コンソール AP で SetRegistryKey …

以前一度やっているが…
https://dev.mish.work/wordpress/2015/01/28/console-ap-reg-read/

class	CMy_App	:	public	CWinApp	{
public:
	void	SetRegistryKey_	(LPCTSTR key)	{	SetRegistryKey(key) ;	}
	} ;

//CWinApp	theApp ;
CMy_App		theApp ;

int	_tmain	(int argc,TCHAR* argv[])
{
	_tsetlocale(LC_ALL,_T("")) ;
	::reg_argv(argc,argv) ;
	{
		if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) {
			std::terr << _T("Fatal Error: MFC initialization failed") << std::endl ;
			}
		theApp.SetRegistryKey_(Profile::GetRegKey_Base()) ;	//	レジストリを使用する
		}
	if (argc > 1) {
		for (int index=1 ; index<argc ; index++) {
			tstring	fold = argv[index] ;
			::test(fold) ;
			}
		}
	else {
		tstring	def_path = LPCTSTR(::PC_get_current_page()) ;
		tstring	fold = def_path ;
		while(true)	{
			fold = ::ask_folder(fold.c_str()) ;
			if (fold.empty())	{	break ;		}
			::test(fold) ;
			}
		}
	return	0 ;
	}

CMy_App SetRegistryKey

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