ホーム » 2025 » 6月

月別アーカイブ: 6月 2025

2025年6月
1234567
891011121314
15161718192021
22232425262728
2930  

カテゴリー

アーカイブ

ブログ統計情報

  • 117,649 アクセス


ShellExecute.. properties

ファイルやフォルダの「プロパティ」ダイアログを表示したくなった.
以前調べた時,ShellExecute の lpOperation で指定すれば良いと思っていた.
Copilot に聞いてみると,次の様なコードが表示された.

{
	LPCTSTR   filePath  = _T("E:/_backup_") ;
	HINSTANCE hInstance = ::ShellExecute(NULL,_T("properties"),filePath,NULL,NULL,SW_SHOWNORMAL) ;
	if (UINT64(hInstance) < 32)	{
		DWORD	error = ::GetLastError() ;
		tstring	str   = ::Error_FormatMessage(error) ;
		std::tout << str << std::endl ;
		}
	}
{
	SHELLEXECUTEINFO sei = {0};
	sei.cbSize = sizeof(SHELLEXECUTEINFO) ;
	sei.lpVerb = _T("properties") ;
	sei.lpFile = _T("E:/_backup_") ;
	sei.nShow  = SW_SHOWNORMAL ;
	sei.fMask  = SEE_MASK_INVOKEIDLIST ;
	if (!::ShellExecuteEx(&sei)) {
		DWORD	error = ::GetLastError() ;
		tstring	str   = ::Error_FormatMessage(error) ;
		std::tout << str << std::endl ;
		}
	}

::ShellExecuteEx は表示できるが,::ShellExecute はエラーになる.
改めてドキュメントを見ると ::ShellExecute には “properties” がない.
::ShellExecuteEx   properties



C++&Win API 設定(Windows設定アプリ)を表示する
ファイルプロパティの表示
ShellExecute()とデフォルトブラウザの起動、拡張子の関連付け

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

“!This folder protects … “

簡単にバックアップをとるためのツールを作成中.
目的としては「バックアップと復元 (Windows 7)」の様なもので,robocopy によるバックアップのみ.
ディレクトリ以下のコピー」ツールの内部的な部分を,用途を絞って用意できればと思っている.


次のコードで動作を確認していると,見慣れないフォルダがあった.

bool	test_backup	(const int csidl)
{
	tstring	fdst = _T("e:") ;
	tstring	path = ::SH_GetFolderPath(csidl) ;
	std::tout << ::u64to0t(csidl,16,8) << _T("\t") << path << std::endl ;
	{
		if (!x_CopyCommand::CheckFolderDST(fdst.c_str())) {
			fdst = ::Path_AddLastSP(fdst) + x_Copy_RootDST ;
			}
		x_CopyCommand	bc_cmd ;
		{
			bc_cmd.SetFolderDST(fdst.c_str()) ;
			bc_cmd.SetFolderSRC(path.c_str()) ;
		//	bc_cmd.Set_pause(true) ;
			bc_cmd.Execute(SW_MAXIMIZE,true) ;
			}
		}
	return	true ;
	}

C:\Users\Iwao\Desktop\!This folder protects against Ransomware. Just leave it here
!This folder protects against Ransomware.
検索すると問題ないとのこと.
検索する前からわかってはいたが,見つかった情報の内容が正しくないものがあった.
そのフォルダにある desktop.ini を開くとアイコンの指定があり,Cybereason となっている.



robocopyの良く使うオプションを用途から逆引き【Windows】
Robocopyでよく使用するオプションについてまとめてみた
Windows 11/10 の標準機能で自動システムバックアップ
【Windows 10 の基本】必要なフォルダーのバックアップを取るには?
Windows 10&11標準アプリ「Windows バックアップ」とは?:簡単に使えるバックアップ ツール
[データバックアップ編]残しておきたい8大データをピンポイント保存

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

VC でビルドできなくなった?

先日 VS 2022 のアップデートがあったので更新.
アップデート後のいつもの確認で,ツールのデバッグ版をビルドすると,いつまで経っても完了しない.
VC 2022  ビルドで完了しない
時々アップデートに失敗することがあるので,それかと思い,VC 2015 でビルドしても同様.
ここまでは 6/21 に確認.


VC 2005 でのビルドも完了しない.VC 6 では OK .
VC 2022 でダイアログベースで作成したスケルトンのままでも同様.
VC 2022 で,VB や C# のフォームアプリケーションはちゃんとビルドできる.
検索してもそれらしい情報には引っかからない.そうなると環境の問題か?


通常の MFC を使用したツール類は,今月に入ってからはビルドしていない.
.NET を利用した Web サーバは,インストールしている VC 2005 から 2022 すべてで 6/3 にビルドしている.
その後,VC 6 でのビルドは行っているが,VC 2022 などではビルドしていない?


先週までの影響しそうな変更などは次のようなもの.
NAS 環境に Dockerそのコンテナなどをインストール.
Windows Update 2025/06 .VS 2022 などのアップデート.
WSL はインストール済みだった.Docker Desktop のインストール.
Linux でもコンパイルできる様に,一部の共通のコードの修正.
VS 2022 のアップデート.


Web サーバのプロジェクトを VC 2005 と 2008 で再度ビルドすると,問題ない.VC 2010 はダメ.
VC 2005 で作成したダイアログベースのプロジェクトは 30 分程度かかるがビルドできた.


これらのことを考えると,ネットワークの問題か,インクルードの関係と思われる.
今まで長い間,インクルードの関係が次の様になっている.
VC 2010  インクルードなどの設定
今は使用していないパスの設定を整理して削除.
先日までの速度でビルドできるようになった.

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

mount 先への書き込み

引き続き,環境をどうするか?
現状 Win32 の AP の開発は,次の様に分けている.
Server_TS : 共通のコード(_.SRC 以下)
Server_DS : プロジェクトのソースなど(AppWizard の生成物).
Server_AS : ビルド結果(*.obj,*.exe).
Win11 PC : 一時的なテスト用プロジェクトなど.
今まで,共通のコードは mount して,Linux 固有の部分はそれぞれの環境に置いていた.


Server_DS のテスト環境に,Win10 PC の仮想マシンにあった Linux 環境のファイルをコピー.
次の様に mount .
mount -t cifs //192.168.1.xx/Public/Temp/linux/gcc /home/wao/test/gcc …
コンパイルするとエラーになる.
g++ c84.cpp -lglut -lGL -lGLU
Linux  マウント先への書き込み
コンパイル時に sudo をつければ良い.
ソースの編集は,他環境からのことが多いので,これで良しとするか?


さらに調べていると,よくわからない状態に.
 fatal error: i_define.hxx: No such file or directory
sudo g++ src.cpp とするとエラーになってしまう.
PC の D ドライブにソースを入れた場合や,Linux 環境にコピーした場合などは OK .
PC の D ドライブのソースは OK


この1ページで一通りわかる!Linuxのマウント(mount)について
マウントしたディレクトリを一般ユーザー権限にする
LinuxでNTFSファイルシステムのマウントでアクセス権限やファイルの所有者変更で悩まないために

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

NAS への mount

VirtualBox の Fedora では,次の様なコマンドで Win10 環境の _.src を参照していた.
sudo mount -t cifs -o username=user,password=pass //Z170S0/Public/…/_.SRC /mnt/_.src
今回 Win11 に VHD を移して,この辺りをどうするか調査中…
NAS への mount は,IP で指定しなければうまくいかない?
sudo mount -t cifs -o username=user,password=pass //192.168.1.xx/Public/ /mnt/public
Fedora  mount NAS


WSL で入れた Fedora の環境も同じようにできる.
ll  /mnt/public/
\\wsl.localhost\FedoraLinux-42\mnt\public


同様に Docker で入れた dorowu/ubuntu-desktop-lxde-vnc もやってみたが,こちらはうまくいかない.
mount: /mnt/public: permission denied.
mount: /mnt/public: cannot mount //192.168.1.xx/Public/ read-only.
Unable to apply new capability set.
それならばと思い Nautilus を入れてやってみたが,よくわからない.
dorowu/ubuntu-desktop-lxde-vnc   Nautilus


これらをやっていて久しぶりに思い出したのが「Ctrl」+「Z」や,nautilus & .
コマンドの後ろに & を付加すると bg で動作する.
他に fg や jobs .
xeyes   bg jobs fg
40 年近く前,アセンブルやストックフォームに印刷などで他の人に迷惑をかけた記憶がよみがえってきた.


【SMB / CIFS】LinuxでNASドライブをマウントする
LinuxでのNASへの自動マウントの方法@2024
UbuntuでNASのマウントと注意点
【Linux】【Windows】【CIFS】Windows の共有フォルダを Linux でマウント(mount)する手順
WindowsとLinuxでCIFSを使って簡単にファイル共有する方法

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

Synology NAS で OpenMP

最近 Docker に関して調べていて,幾つか気になったことを整理.


以前,OpenMP に関して調べているが今の時点で整理すると,
Synology NAS DS220+ では実行可能,TS-253D と AS5202T では不可.
DS220+ でも,ビルドはできない.他の環境でビルドしたものをコピーして実行.
DS220+   find /user | grep libgomp
何れの環境でも omp.h が存在しないためビルドはできない.
DS220+ では libgomp.so が存在するので動作するみたい.
TS-253D では「libgomp.so がない」となってしまう.


当然のことではあるが,Docker など仮想環境を利用すれば可能になる.

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

Windows で Docker

Win11 環境での続き…
先日から NAS 環境でいろいろとやったので,ある程度すんなりできた.
dorowu/ubuntu-desktop-lxde-vnc を検索してインストール.
「Ubuntu Desktop with noVNC」
「dorowu/ubuntu-des…」を選択してインストール.
「RUN」して「Optional settings」を「↓」.
ポートを 60080 に
「Host port」に「60080」などと入力し「Run」.
60080:80 のリンクをクリック
「60080:80」のリンクをクリックするとブラウザが開く.
ブラウザの中でデスクトップが操作できる
gcc などをインストール.
GLUT を使用したコードビルドして動作することを確認.


Windows 10 homeでWSL2 + DockerDesktopでDocker環境を構築する手順
Comprehensive Guide to dorowu/ubuntudesktoplxdevnc:latest
Windows 11 + Docker + Linux開発の落とし穴
AIロボット入門2024:LXDEデスクトップ環境の使い方
【Docker】公式イメージでUbuntuデスクトップ構築手順

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

Windows で Docker ?

Ubuntu と同様wsl ––install fedora で Fedora をインストールできた(この環境では既に入っている ).

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

C:\Users\Iwao\AppData\Local\Temp>wsl --install fedora
ダウンロードしています: Fedora Linux 42
インストールしています: Fedora Linux 42
指定された名前のディストリビューションは既に存在します。--name を使用して別の名前を選択してください。
エラー コード: Wsl/InstallDistro/Service/RegisterDistro/ERROR_ALREADY_EXISTS

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

wsl --install fedora


gccglut などもインストール.
2014/09 の GLUT のコードを,2019/09 に a.out にしたものがあった.
Fedora から参照できるようにして,起動するとうまく動いた.
WSL 上の Fedora で glut の a.out を実行
ここまで特に何も考えないでやっていたが,Fedora 42 は最近になって WSL から簡単に利用できるようになったみたい.


Fedora in Windows Subsystem for Linux
WSL に標準で対応した Fedora 42 がリリースされたので試してみる(WSL 2 編)


2025/06/13
同様に Ubuntu で GLUT 関係をやったが,freeglut3 がインストールできない.freeglut3-dev は可能.

wao@B660M:~$ sudo apt install freeglut3
[sudo] password for wao:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package freeglut3
wao@B660M:~$ sudo apt install freeglut3-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libegl-dev libgl-dev libgl1-mesa-dev libgles-dev libgles1 libglu1-mesa libglu1-mesa-dev libglut-dev libglut3.12
  libglvnd-core-dev libglvnd-dev libglx-dev libice-dev libopengl-dev libopengl0 libpthread-stubs0-dev libsm-dev libx11-dev
  libxau-dev libxcb1-dev libxdmcp-dev libxext-dev libxt-dev x11proto-dev xorg-sgml-doctools xtrans-dev
Suggested packages:
  libice-doc libsm-doc libx11-doc libxcb-doc libxext-doc libxt-doc
The following NEW packages will be installed:
  freeglut3-dev libegl-dev libgl-dev libgl1-mesa-dev libgles-dev libgles1 libglu1-mesa libglu1-mesa-dev libglut-dev
  libglut3.12 libglvnd-core-dev libglvnd-dev libglx-dev libice-dev libopengl-dev libopengl0 libpthread-stubs0-dev libsm-dev
  libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxext-dev libxt-dev x11proto-dev xorg-sgml-doctools xtrans-dev
0 upgraded, 27 newly installed, 0 to remove and 3 not upgraded.
Need to get 2970 kB of archives.
After this operation, 12.7 MB of additional disk space will be used.
Do you want to continue? [Y/n]

apt install freeglut3


2019/09 の a.out は libglut.so.3 がないため実行できなかった.
libglut.so.3: cannot open shared object file: No such file or directory
GLUT を使用したコードは,Ubuntu 環境でビルドし直すことで起動できるようになった.
g++ c1032.cpp -lglut -lGL -lGLU


【初心者向け】WindowsにDockerをインストールする方法|Docker Desktop編


WSL(Windows Subsystem for Linux)向けにFedoraディストリビューション登場
How to install Fedora on WSL for Windows 10 and Windows 11
MicrosoftがWSLにFedora Linuxを追加、tarベース新アーキテクチャの採用でディストリビューション拡充へ
WSLg を使って Docker 上で GUI アプリを動かす(GPUサポート付き)

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

Synology NAS で Docker

QNAP NAS に入れた dorowu/ubuntu-desktop-lxde-vnc を Synology NAS に…


なかなか入り方がわからなかった.
「コンテナ」-「dorowu-ubuntu-desktop-lxde-vnc-1」-「全般」-「ポート」の値で開ける.
つまり,ブラウザで「http://192.168.1.22:32768」の様に入力すれば良い.
Synology NAS  ubuntu-desktop-lxde
この画像は,デスクトップで起動した Firefox から Synology NAS の DSM を開いている.


Run Ubuntu Linux in Docker with Desktop Environment and VNC
ROS/ROS2のGUIをWebブラウザ経由でお手軽に試せるDockerfileを公開しました
dockerで手軽にLinuxデスクトップ環境を試せる!
【Docker】Ubuntuデスクトップ(dorowu/ubuntu-desktop-lxde-vnc)構築と接続手順

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

QNAP NAS で Docker

引き続き Docker の関係をいろいろと…
コンテナの「端末」を使用した操作はある程度わかったが,今度は GUI での操作.
Synology NAS でいろいろとやったが,よくわからず.そのため QNAP NAS で.
ubuntu desktop を使用して GLUT のコードが実行できるところまで確認


「Container Station」-「アプリテンプレート」で「Ubuntu Desktop with noVNC」を「デプロイ」.
「Container Station」-「アプリテンプレート」 「Ubuntu Desktop with noVNC」
「Container Station」-「コンテナ」で「ubuntu-desktop-lxde-vnc-1」の ↗ で起動できる.
「Container Station」-「コンテナ」で「ubuntu-desktop-lxde-vnc-1」の ↗


これと同じようなことを Synology NAS で行ったが,デスクトップを開く方法までたどり着けなかった.


QNAP NASでDocker(Container Stationを使用)
QNAP NASでRedmineを動かす
QNAP NASのContainerSation(Docker)であとから環境変数を追加する
QNAPでDockerレジストリサーバの作成
TWSNMP FC を QNAP NAS の Docker で 動作させる
やっぱりDockerって便利 QNAP TS-453Aで数クリックで「Aipo」を動かす
QNAP の Docker を使ってみる

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

NAS で Docker …

以前から存在は知っていたが,あまり必要性を感じてはいなかった.
先日,ASUSTOR NAS の ADM の更新があり,Joomla! 3 などのサポートがなくなった
それで,ちょっと調べてみることに…


保有している幾つかの NAS で Docker は使えるみたい.
が,検索して見つかるページはなかなか難しい.
いろいろと弄っていると…
Synology DSM デモサイトで「Container Manager」が動作する.
Synology デモサイト Container Manager


「Container Manager」を起動.
「gcc」を「ダウンロード」
「レジストリ」を選択して「gcc」を検索,表示された「gcc」を「ダウンロード」.
「gcc」を「実行」
「イメージ」で「gcc」を選択して「実行」.
gcc-1  「端末を開く」
「コンテナ」で「gcc-1」を選択して「端末を開く」.
Hello World を作成して g++
Hello World を作成して g++ .


今度は「Ubuntu」を使用.「ダウンロード」して「実行」,「端末を開く」.
gcc などが入っていないので,次のコマンドを入力してインストール.
apt update
apt upgrade
apt install build-essential
apt install nano
コンパイルして,実行.
Ubuntu   gcc と nano をインストール


Asustor nas でdockerを動かしてみる


How to Use Docker & Container Manager on a Synology NAS
Synology NASのDockerパッケージでDocker Composeを使用する方法
Synology NAS でPortainerによるDockerコンテナ管理
NAS×Dockerでお手軽にLinux環境を作った話
QNAP の Container Station で Docker Compose を使ってみる
ASUSTOR NAS で Docker を使用する

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

Synology NAS で .NET console

先日から Synlogy NAS 上の .NET に関していろいろとやっている.
今まで Windows 上でコードを書いて run ,NAS 上にコピーして SSH 接続して実行していた.
これをもう少し簡単にできないかと…


NAS 上のコピー先をネットワークドライブとして割り当て.
NAS をネットワークドライブとして割り当て,「コマンドプロンプトを起動」
そこをコマンドプロンプトで開いて,dotnet コマンドなどでいろいろと…
NAS に直接 dotnet コマンドなどで操作


Dotnet Run App
コマンドラインでC#プログラミング
.NET Core で 実行ファイル(exe)を作成する方法

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

ショートカットからの起動で …

VS 2022 でインストーラを作成.
インストールした exe を起動する時はうまく動作する.
exe へのショートカットをダブルクリックして起動すると,インストーラが走ってしまう.
ショートカットから起動すると,インストーラが走る
原因は「Application Folder」の「DefaultLocation」が正しくなかったため.
実行時に,指定したフォルダが存在しない場合も同様.
「DefaultLocation」の指定と,「AlwaysCreate」を「True」に
「DefaultLocation」を指定して,「AlwaysCreate」を「True」に.
Set_SasZ.zip


【.NET Core対応】Visual Studio 2019でインストーラを作成する方法


インストーラクラスでインストーラを作成する
Visual Studio Installer Projectsでインストーラを作成する
VisualStudio 2019 インストーラの作成方法
Visual Studioでインストーラを作成する

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

Web サーバ C++/CLI

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