ホーム » Windows (ページ 9)

Windows」カテゴリーアーカイブ

2025年4月
 12345
6789101112
13141516171819
20212223242526
27282930  

カテゴリー

アーカイブ

ブログ統計情報

  • 111,610 アクセス


AP がうまく動作しない?

作成した AP がうまく動作しなくなってしまった.
AP がうまく動作しない フリーズ?する
起動はするがメニューの「ファイル」の部分を選択したりするとフリーズ?する.
ハッキリわからないが「オーナードローメニュー」か?


PC を再起動することで動作する様にはなったが,原因などが絞れていないのでメモ.


2020/07/07 同じ現象が発生.
サインアウトして入り直しではダメで,PC の再起動の必要がある.

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

Win10 2004 インストール

Win10 Ver.2004 があったので VirtualBox 仮想マシンにインストールしてみた.
使用したのは ja_windows_10_business_editions_version_2004_x64_dvd_ee7b2698.iso .


最初,何も考えずにインストールしたら「Microsoft アカウント」と結びついたものになってしまった.
インストール途中で「ローカル アカウント」にする方法は気がつかなかった.


そのため,もう一度やり直し.ネットワークを切断した状態でインストール
今度はうまくいった.
Win10 2004 「ローカルアカウント」でインストール


2020/08/31
ローカルアカウントでインストールするための選択画面
ローカルアカウントでインストールするための選択画面
左下の「オフライン アカウント」を選択する.


2020/09/20
次の画面の場合は「代わりにドメインに参加する」を選択.
Win10 LTSC 2019 「ローカルアカウント」の入力に

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

Windows の資格情報マネージャー

久しぶりに Win7 環境から NAS に接続して ??? と思ったのでちょっと調べてみた.


以前 Win7 から NAS に接続する時,いつも面倒と思っていたこと.
Windows で特定の宛先に対して使用する資格情報を資格情報マネージャーに記憶しているにもかかわらず、再度、資格情報の入力を要求される
Win7 は「Iwao」でログインすると入れるが,PC の再起動後などにまた要求される.
Win7 ログオン情報入力
次の様にユーザ名を「…\Iwao」と入力する必要がある.
Win7 ログオン情報入力
Win7 資格情報


Win10 ではちょっと違うみたいだが,はっきりした記述は見つけられなかった.
Win10 資格情報

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

#pragma message (” ~ “) の利用

先日からやっているコードの解析部分を単体テスト用に分割していると,

--------------------構成: prs_frml - Win32 Debug--------------------
コンパイル中...
prs_frml.cpp
c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>
cl.exe の実行エラー

prs_frml.exe - エラー 1、警告 0

「パッと見」でわかる時は良いが,今回はわかり難い.
そんな時に私が場所を限定していく手順.
次の様に影響していそうな所に #pragma message (” ~ “) を追加.

#pragma	 message ("pass 1")
#include "StrAryTo.hxx"
#pragma	 message ("pass 2")
#ifdef	 _MSC_VER
	 #ifdef	_AFXDLL
	 #else
		#ifndef	afxDump
		#define	afxDump	std::terr
		#endif
	 #endif
#endif
#pragma	 message ("pass 3")

エラーの場所を特定するために #pragma message を追加
今回は次の様になったので StrAyTo.hxx が原因とわかった.

pass 1
c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>

StrAryTo.hxx は CStringArray と std::vector<tstring> を相互変換するコード.
インクルードから外すことで対応.


MFC を使用しているソースなどの対応方法は次の所.
https://dev.mish.work/wordpress/2019/04/05/c1189-windows-h-already-included/

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

VirtualBox 6 VHD のサイズの拡大

Win7 の時に作成した VHD のサイズが 64 GB だったのでそれの拡張.
検索すると,探し方が悪いのか面倒な方法ばかり…
それで見つけたのが次の所.
https://blog.goo.ne.jp/ashm314/e/53afcf6f9356646d5556590cab11c013
「メニュー」-「ファイル」-「仮想メディアマネージャー」
VHD を選択,新しいサイズを指定して「適用」
これで VHD の大きさは大きくなるが,仮想マシンを起動すると変わっていない.
ディスクのサイズが増えていない
「ディスクの管理」で見ると「未割り当て」になっている
これに対応するには次の所.
https://www.atmarkit.co.jp/fwin2k/win2ktips/869vhdextend/vhdextend.html

Microsoft DiskPart バージョン 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
コンピューター: VP-HBY

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン            80 GB    16 GB

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      CD-ROM          0 B  メディアなし
  Volume 1        システムで予約済み    NTFS  Partition    100 MB  正常       システム
  Volume 2    C                NTFS  Partition     63 GB  正常       ブート

DISKPART> select volume 2

ボリューム 2 が選択されました。

DISKPART> extend

DiskPart はボリュームを正常に拡張しました。

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      CD-ROM          0 B  メディアなし
  Volume 1        システムで予約済み    NTFS  Partition    100 MB  正常       システム
* Volume 2    C                NTFS  Partition     79 GB  正常       ブート

DISKPART>

diskpart select volume  extend
拡張した部分を認識


2021/01/06
「仮想メディアマネージャー」を使用して,80 GB から 100 GB の拡張で 1 時間程度かかった.
100 GB に拡張して,実際のサイズが 160 GB に
実際のファイルサイズが 160 GB 程度になってしまっている.
diskpart による操作は特に問題ない.


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

漢字を含むソースのテスト – 2

前回のコードで,文字列の部分を #define で指定.

Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$ uconv -f SJIS cc_ml_2.cpp

#include        <clocale>
#include        <iostream>
#include        "i_define.hxx"
#include        "_tdefine.hxx"
#include        "ccc_mlg.hxx"

#define Name_1_         _T("Name_1")
#define Name_2_         _T("Name_2")
#define Name_3_         _T("Name_3")
#define Name_4_         _T("Name_4")
#define Name_5_         _T("Name_5")
#define Name_1J         _T("名称 1")
#define Name_2J         _T("名称 2")
#define Name_3J         _T("名称 3")
#define Name_4J         _T("名称 4")
#define Name_5J         _T("名称 5")

bool    test    (void)
{
        {
                ccc_mlg*        cm = ::get_ccc_mlg() ;
                {
                        ccc_mlg_1       cm_1 ;  cm_1.Name = Name_1_ ;   cm_1.JPN = Name_1J ;
                        ccc_mlg_1       cm_2 ;  cm_2.Name = Name_2_ ;   cm_2.JPN = Name_2J ;
                        ccc_mlg_1       cm_3 ;  cm_3.Name = Name_3_ ;   cm_3.JPN = Name_3J ;
                        ccc_mlg_1       cm_4 ;  cm_4.Name = Name_4_ ;   cm_4.JPN = Name_4J ;
                        ccc_mlg_1       cm_5 ;  cm_5.Name = Name_5_ ;   cm_5.JPN = Name_5J ;
                        cm->push_back(cm_1) ;
                        cm->push_back(cm_2) ;
                        cm->push_back(cm_3) ;
                        cm->push_back(cm_4) ;
                        cm->push_back(cm_5) ;
                        }
                std::tout << ccc("Name_2") << std::endl ;
                }
        return  true ;
        }

int _tmain(int argc, TCHAR* argv[])
{
        _tsetlocale(LC_ALL,_T("")) ;
        test() ;
        return 0 ;
        }

Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$ uconv -f SJIS cc_ml_2.cpp  > dd.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$ g++ dd.cpp -Wall
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$ ./a.out
名称 2
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_2$  

文字列の部分を #define で定義 Synology NAS 上でコンパイル


#define の部分を別のファイルとして保存.test_ccc.hpp
“㎥” を次の様に指定してみたが,Windows コンソール AP ではうまくいかない.

#define	Unit_M_				"Unit_M^3"
#ifdef	_MSC_VER
	#ifdef	_UNICODE
		#define	Unit_MJ		L"\x7acb "		L" \x33a5 "		L" \x7c73"
	#else
		#define	Unit_MJ		"立米"
	#endif
#else
		#define	Unit_MJ		"\xE3\x8E\xA5"
#endif

Synology NAS では OK .


文字コードを検索できるサイト
https://www.fileformat.info/info/unicode/char/search.htm


2020/01/20
Windows AP の場合のコードを少し変更.

	std::tout << ccc(Name_3_) << std::endl ;
	std::tout << ccc(Unit_M_) << std::endl ;
	tstring	ccc_str ;
	ccc_str += ccc(Name_3_) + _T("\r\n") ;
	ccc_str += ccc(Unit_M_) + _T("\r\n") ;
	::MessageBox(NULL,ccc_str.c_str(),_T("Test"),MB_OK) ;

「㎥」を含む ::MessageBox での表示
::MessageBox で意図した表示となることを確認.

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

漢字を含むソースのテスト

’90 年代前半の頃は JIS と シフトJIS のソースを扱っていた.
そのプロジェクトの最初の頃は,ターゲット環境のみでソースを管理していた.
0x1c 0x2d 漢字 0x1c 0x2e の形式.wiki 漢字シフトコード
途中からソース管理は PC-9801DA などに移行してシフトJIS になった.
ターゲット環境に移す時,ソースのコピーとシフトJIS から JIS への変換を行っていた.


Linux 環境を意識し始めてから新規に書いた共通のコードは 7 ビットの範囲にしている.
Windows AP であれば rc ファイルの STRINGTABLE が使用できるが,これにあたるものをどうするか?
まず一番簡単な方法の漢字を含むソースでの動作をテストしてみた.
この中の ccc(const char* s) の部分はまだ暫定的なコードで,登録されたテーブルから対応する JPN を求めるもの.

#include	<clocale>
#include	<iostream>
#include	"i_define.hxx"
#include	"_tdefine.hxx"
#include	"ccc_mlg.hxx"

bool	test	(void)
{
	ccc_mlg*	cm = ::get_ccc_mlg() ;
	{
		ccc_mlg_1	cm_1 ;	cm_1.Name = _T("Name_1") ;	cm_1.JPN = _T("名称 1") ;
		ccc_mlg_1	cm_2 ;	cm_2.Name = _T("Name_2") ;	cm_2.JPN = _T("名称 2") ;
		ccc_mlg_1	cm_3 ;	cm_3.Name = _T("Name_3") ;	cm_3.JPN = _T("名称 3") ;
		ccc_mlg_1	cm_4 ;	cm_4.Name = _T("Name_4") ;	cm_4.JPN = _T("名称 4") ;
		ccc_mlg_1	cm_5 ;	cm_5.Name = _T("Name_5") ;	cm_5.JPN = _T("名称 5") ;
		cm->push_back(cm_1) ;
		cm->push_back(cm_2) ;
		cm->push_back(cm_3) ;
		cm->push_back(cm_4) ;
		cm->push_back(cm_5) ;
		}
	std::tout << ccc("Name_3") << std::endl ;
	return	true ;
	}

int _tmain(int argc, TCHAR* argv[])
{
	_tsetlocale(LC_ALL,_T("")) ;
	test() ;
	return 0 ;
	}

gcc 漢字 shiftjis」で検索すると -finput-charset で文字コードを指定できるとある.

pi@raspberrypi:~/projects/cc_ml_1 $ g++ cc_ml_1.cpp 
pi@raspberrypi:~/projects/cc_ml_1 $ ./a.out 
���� 3
pi@raspberrypi:~/projects/cc_ml_1 $ g++ -finput-charset=SJIS-WIN cc_ml_1.cpp 
pi@raspberrypi:~/projects/cc_ml_1 $ ./a.out 
名称 3
pi@raspberrypi:~/projects/cc_ml_1 $ 

g++ -finput-charset=SJIS-WIN
-finput-charset=SJIS ではよくわからないエラーになる.
g++ -finput-charset=SJIS
cp932 でも良さそう.


Synology NAS DS116 は g++ の-finput-charset の指定では変換できないみたい.

Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ g++ cc_ml_1.cpp -Wall
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ ll
total 72
drwxrwxrwx+  3 Iwao users  4096 Jan 16 22:01 .
drwxrwxrwx+ 10 Iwao users  4096 Jan 16 21:36 ..
-rwxrwxrwx   1 Iwao users 50452 Jan 16 22:01 a.out
drwxrwxrwx+  2 Iwao users  4096 Jan 16 21:53 bak
-rwxrwxrwx+  1 Iwao users  2001 Jan 16 22:00 cc_ml_1.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ ./a.out
 3
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ uconv -f sjis cc_ml_1.cpp > dd.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ g++ dd.cpp
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ ./a.out
名称 3
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ g++ -finput-charset=SJIS cc_ml_1.cpp
cc1plus: error: conversion from SJIS to UTF-8 not supported by iconv
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ g++ -finput-charset=sjis cc_ml_1.cpp
cc1plus: error: conversion from sjis to UTF-8 not supported by iconv
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$ iconv
-sh: iconv: command not found
Iwao@DS116:~/gcc_test/Test/t_linux/cc_ml_1$
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ショートカット作成

ショートカット作成の CreateLink のドキュメントの場所など
CreateLink
CSIDL
KNOWNFOLDERID


サンプルの ::CreateLink を利用したコード.
呼出している所は次の様なコード.lnk がなければ CreateLink .あれば削除.
UNICODE 版としてビルドする必要がある.

	if (_taccess(lnk_path,0) != 0) {
		::CoInitialize(NULL) ;
		char	mb_lnk_path[MAX_PATH] ;
		::WideCharToMultiByte(CP_ACP,0,lnk_path,-1,mb_lnk_path,MAX_PATH,NULL,NULL) ;
		::CreateLink(exe_path,mb_lnk_path,descript) ;
		::CoUninitialize() ;
		}
	else {
		_tremove(lnk_path) ;
		}

CreatLnk.cpp
CreatLnk.zip


サンプル状態では使い勝手が良くないので,幾つか修正.

HRESULT	CreateLink	(
	LPCTSTR	lpszPathObj ,		//	LPCWSTR
	LPCWSTR	lpszPathLink ,		//	LPCSTR
	LPCTSTR	lpszDesc ,		//	LPCWSTR
	LPCTSTR	workingFolder ,		//	作業フォルダ
	WORD	hotkey = 0		//	
	)

CreatLnk.hxx
CreateLink


_UNICODE を指定してビルドすると

--------------------構成: T_Lnk - Win32 Release--------------------
コンパイル中...
T_Lnk.cpp
\\DevS\Documents\Develop\_.SRC\__CPR_\xtot.hxx(83) : error C2679: 二項演算子 '=' : 型 'unsigned short [2]' の右オペランドを扱う演算子は定義されていません。(または変換できません)(新しい動作; ヘルプを参照)
\\DevS\Documents\Develop\_.SRC\__CPR_\xtot.hxx(103) : error C2679: 二項演算子 '=' : 型 'unsigned short [2]' の右オペランドを扱う演算子は定義されていません。(または変換できません)(新しい動作; ヘルプを参照)
\\DevS\Documents\Develop\_.SRC\__CPR_\ttox.hxx(34) : error C2664: 'wcstoul' : 1 番目の引数を 'const char *' から 'const unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照)
        指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
\\DevS\Documents\Develop\_.SRC\__CPR_\ttox.hxx(34) : fatal error C1903: 直前のエラーを修復できません; コンパイルを中止します。
cl.exe の実行エラー
T_Lnk.exe - エラー 4、警告 0

UNICODE などの定義が矛盾していることがあるのでそれを最初に指定する.
// (VS8)\VC\AtlMFC\Include\AfxV_W32.h

#ifdef	_MSC_VER
	#ifdef		_UNICODE
		#ifndef	 UNICODE
		#define	 UNICODE		// UNICODE is used by Windows headers
		#endif
	#endif
	#ifdef		 UNICODE
		#ifndef	_UNICODE
		#define	_UNICODE		// _UNICODE is used by C-runtime/MFC headers
		#endif
	#endif
#endif

https://dev.mish.work/wordpress/2020/09/25/i_def_aw-hxx/


2020/10/14
作成した CreateLink の引数.
IID_IPersistFile の Save は LPCOLESTR になっている.
IID_IPersistFile
IID_IShellLink は _UNICODE かどうかでそれぞれが使用される.
IID_IShellLink


lnk 作成

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

Linux での cp コマンド

ssh 接続 した linux 環境で,ファイルをコピーしようとして cp コマンドを使用.
その時,更新日時が変更されることに気付いた.

[Iwao@fedora ~]$ cp --help
使用法: cp [OPTION]... [-T] SOURCE DEST
または: cp [OPTION]... SOURCE... DIRECTORY
または: cp [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
  -a, --archive                -dR --preserve=all と同様
      --attributes-only        ファイルのデータをコピーせず、ファイルの属性のみコピーする
      --backup[=CONTROL]       コピー先ファイルが存在する時にバックアップを作成する
  -b                           --backup と同様だが引数を受け付けない
      --copy-contents          再帰時に特殊ファイルの内容をコピーする
  -d                           --no-dereference --preserve=links と同様
  -f, --force                  if an existing destination file cannot be
                                 opened, remove it and try again (this option
                                 is ignored when the -n option is also used)
  -i, --interactive            prompt before overwrite (overrides a previous -n option)
  -H                           follow command-line symbolic links in SOURCE
  -l, --link                   コピーの代わりにファイルのハードリンクを作成する
  -L, --dereference            SOURCE にあるシンボリックリンクを常にたどる
  -n, --no-clobber             存在するファイルを上書きしない (前に指定した
                                 -i オプションを上書きする)
  -P, --no-dereference         SOURCE にあるシンボリックリンクを決してたどらない
  -p                           --preserve=mode,ownership,timestamps と同様
      --preserve[=ATTR_LIST]   指定した属性を保護する (デフォルト: mode,ownership,timestamps)。
                                 追加可能な属性: context, links, xattr, all
  -c                           deprecated, same as --preserve=context
      --no-preserve=ATTR_LIST  指定した属性を保護しない
      --parents                DIRECTORY 配下で SOURCE ファイルのフルパス名を使用する
  -R, -r, --recursive          再帰的にディレクトリをコピーする
      --reflink[=WHEN]         clone/CoW コピーを制御する。下記を参照
      --remove-destination     コピー先にファイルが存在する場合、開く前に削除する (--force と対照的)
      --sparse=WHEN            スパースファイル作成を制御する。下記を参照
      --strip-trailing-slashes  各 SOURCE 引数から末尾のスラッシュを全て削除する
  -s, --symbolic-link          コピーの代わりにシンボリックリンクを作成する
  -S, --suffix=SUFFIX          通常のバックアップ接尾辞を上書きする
  -t, --target-directory=DIRECTORY  全ての SOURCE 引数を DIRECTORY にコピーする
  -T, --no-target-directory    DEST を通常ファイルとして扱う
  -u, --update                 SOURCE ファイルがコピー先ファイルより新しいか存在しない時だけコピーする
  -v, --verbose                実行していることを説明する
  -x, --one-file-system        このファイルシステムだけで実行する
  -Z                           set SELinux security context of destination file to default type
      --context[=CTX]          like -Z, or if CTX is specified then set the SELinux or SMACK security context to CTX
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

Fedora での cp コマンドの --help
-p オプションで意図した動作となる.
また GUI 版の「ファイルマネージャ」などでは更新日時などは引き継がれる.
mv コマンドは更新日時は引き継がれる.

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

Linux で文字コードの変換

Windows での文字コードの変換部分は MultiByteToWideChar,WideCharToMultiByte でうまく機能している.

 exe \ 入力 シフトJIS UTF-16 UTF-8
_UNICODE → WideChar そのまま → WideChar(CP_UTF8)
_MBCS そのまま → MultiByte → WideChar(CP_UTF8) → MultiByte

MultiByteToWideCharWideCharToMultiByte の使い方は C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\ などの mbstowcs.c,wcstombs.c を参照.


MSDN で見つけた記事
C++ – STL の文字列クラスと Win32 API による Unicode エンコーディングの変換


Linux 環境での動作は 2014/03 に一度調べていたみたいで ” gcc iconv ” とコメントになっている.
それで https://ja.wikipedia.org/wiki/Iconv にあるコードを Raspberry Pi 環境で実行するとうまく変換できる.
コンパイルエラーになったので string.h のインクルードが必要かも?
同じコードを Synology NAS の DS116 でコンパイルして実行するとうまく動作しない
(そのままのコードでは止まってしまう).
iconv_open で (iconv_t)-1 が返されていて errno は EINVAL になってしまう.


iconv コマンドを試すと Raspberry Pi では OK .
Synology NAS は iconv が存在しない.
検索すると uconv が使えると書かれている.
https://forum.synology.com/enu/viewtopic.php?t=82591


Iwao@DS116:~$ uconv -L
ASCII-Latin Accents-Any Amharic-Latin/BGN Any-Accents Any-Publishing Arabic-Latin Arabic-Latin/BGN Armenian-Latin Armenian-Latin/BGN Azerbaijani-Latin/BGN Belarusian-Latin/BGN Bengali-Devanagari Bengali-Gujarati Bengali-Gurmukhi Bengali-Kannada Bengali-Latin Bengali-Malayalam Bengali-Oriya Bengali-Tamil Bengali-Telugu Bopomofo-Latin Bulgarian-Latin/BGN Cyrillic-Latin Devanagari-Bengali Devanagari-Gujarati Devanagari-Gurmukhi Devanagari-Kannada Devanagari-Latin Devanagari-Malayalam Devanagari-Oriya Devanagari-Tamil Devanagari-Telugu Digit-Tone Fullwidth-Halfwidth Georgian-Latin Georgian-Latin/BGN Greek-Latin Greek-Latin/BGN Greek-Latin/UNGEGN Gujarati-Bengali Gujarati-Devanagari Gujarati-Gurmukhi Gujarati-Kannada Gujarati-Latin Gujarati-Malayalam Gujarati-Oriya Gujarati-Tamil Gujarati-Telugu Gurmukhi-Bengali Gurmukhi-Devanagari Gurmukhi-Gujarati Gurmukhi-Kannada Gurmukhi-Latin Gurmukhi-Malayalam Gurmukhi-Oriya Gurmukhi-Tamil Gurmukhi-Telugu Halfwidth-Fullwidth Han-Latin Han-Latin/Names Hangul-Latin Hans-Hant Hant-Hans Hebrew-Latin Hebrew-Latin/BGN Hiragana-Katakana Hiragana-Latin IPA-XSampa Jamo-Latin Kannada-Bengali Kannada-Devanagari Kannada-Gujarati Kannada-Gurmukhi Kannada-Latin Kannada-Malayalam Kannada-Oriya Kannada-Tamil Kannada-Telugu Katakana-Hiragana Katakana-Latin Katakana-Latin/BGN Kazakh-Latin/BGN Kirghiz-Latin/BGN Korean-Latin/BGN Latin-ASCII Latin-Arabic Latin-Armenian Latin-Bengali Latin-Bopomofo Latin-Cyrillic Latin-Devanagari Latin-Georgian Latin-Greek Latin-Greek/UNGEGN Latin-Gujarati Latin-Gurmukhi Latin-Hangul Latin-Hebrew Latin-Hiragana Latin-Jamo Latin-Kannada Latin-Katakana Latin-Malayalam Latin-NumericPinyin Latin-Oriya Latin-Syriac Latin-Tamil Latin-Telugu Latin-Thaana Latin-Thai Macedonian-Latin/BGN Malayalam-Bengali Malayalam-Devanagari Malayalam-Gujarati Malayalam-Gurmukhi Malayalam-Kannada Malayalam-Latin Malayalam-Oriya Malayalam-Tamil Malayalam-Telugu Maldivian-Latin/BGN Mongolian-Latin/BGN NumericPinyin-Latin NumericPinyin-Pinyin Oriya-Bengali Oriya-Devanagari Oriya-Gujarati Oriya-Gurmukhi Oriya-Kannada Oriya-Latin Oriya-Malayalam Oriya-Tamil Oriya-Telugu Pashto-Latin/BGN Persian-Latin/BGN Pinyin-NumericPinyin Publishing-Any Russian-Latin/BGN Serbian-Latin/BGN Simplified-Traditional Syriac-Latin Tamil-Bengali Tamil-Devanagari Tamil-Gujarati Tamil-Gurmukhi Tamil-Kannada Tamil-Latin Tamil-Malayalam Tamil-Oriya Tamil-Telugu Telugu-Bengali Telugu-Devanagari Telugu-Gujarati Telugu-Gurmukhi Telugu-Kannada Telugu-Latin Telugu-Malayalam Telugu-Oriya Telugu-Tamil Thaana-Latin Thai-Latin Tone-Digit Traditional-Simplified Turkmen-Latin/BGN Ukrainian-Latin/BGN Uzbek-Latin/BGN XSampa-IPA am-am_FONIPA az-Lower az-Title az-Upper ch-ch_FONIPA cs-cs_FONIPA cs-ja cs-ko cs_FONIPA-ja cs_FONIPA-ko dsb-dsb_FONIPA el-Lower el-Title el-Upper eo-eo_FONIPA es-am es-es_FONIPA es-ja es-zh es_419-ja es_419-zh es_FONIPA-am es_FONIPA-es_419_FONIPA es_FONIPA-ja es_FONIPA-zh ia-ia_FONIPA it-am it-ja ja_Latn-ko ja_Latn-ru ky-ky_FONIPA la-la_FONIPA lt-Lower lt-Title lt-Upper nl-Title pl-ja pl-pl_FONIPA pl_FONIPA-ja ro-ja ro-ro_FONIPA ro_FONIPA-ja ru-ja ru-zh sk-ja sk-sk_FONIPA sk_FONIPA-ja tlh-tlh_FONIPA tr-Lower tr-Title tr-Upper uz_Cyrl-uz_Latn uz_Latn-uz_Cyrl yo-yo_BJ zh_Latn_PINYIN-ru Any-Null Any-Lower Any-Upper Any-Title Any-Name Name-Any Any-Remove Any-Hex/Unicode Any-Hex/Java Any-Hex/C Any-Hex/XML Any-Hex/XML10 Any-Hex/Perl Any-Hex Hex-Any/Unicode Hex-Any/Java Hex-Any/C Hex-Any/XML Hex-Any/XML10 Hex-Any/Perl Hex-Any Any-NFC Any-NFKC Any-NFD Any-NFKD Any-FCD Any-FCC Any-ch_FONIPA Any-Latin Any-Telugu Any-Gurmukhi Any-Gujarati Any-Malayalam Any-Oriya Any-Devanagari Any-Kannada Any-Tamil Any-cs_FONIPA Any-ru Any-Bengali Any-uz_Latn Any-Katakana Any-ro_FONIPA Any-ky_FONIPA Any-zh Any-yo_BJ Any-am Any-es_419_FONIPA Any-eo_FONIPA Any-es_FONIPA Any-sk_FONIPA Any-Hant Any-Hans Any-Hiragana Any-la_FONIPA Any-Syriac Any-Greek Any-Greek/UNGEGN Any-Cyrillic Any-Hangul Any-Bopomofo Any-Arabic Any-Thai Any-Armenian Any-Thaana Any-Georgian Any-Hebrew Any-am_FONIPA Any-dsb_FONIPA Any-ia_FONIPA Any-uz_Cyrl Any-pl_FONIPA
Iwao@DS116:~$
DS116 で uconv -L


iconv_open で失敗した場合,iconv コマンドまたは uconv コマンドとするか?


Linux 文字コード変換のコード


2022/07/15
SynoCli File Tools v2.6-16 で iconv が追加された.
SynoCli File Tools などのインストール方法は次の所に書いています.
https://dev.mish.work/wordpress/2022/06/15/ds116-entware/

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

Windows , Linux 共通の c++ コード

3 年位前から,少しずつ Windows や Linux に依存しない c++ のコードを書く様にしている.
ソースファイルの文字コードと改行コードは 7 ビットの範囲で crlf にしている.
.sh などは lf でないとうまくない.
html などの場合は UTF-8 .
扱うファイル名も 7 ビットの範囲に限定している.
これで UI を伴わない範囲ではほぼうまく機能している.
次のページからのリンク先で WebGL を使用したサーバのコードはソースレベルで互換性あり.
https://itl.mydns.jp/i_Tools/

他に Windows 専用のコードとの区別のため,ファイル名を小文字に.
これは Linux では大文字,小文字が区別されるため.


今回既存の AP ドキュメントを扱うことに.
Windows でいう「シフト JIS」と「UNICODE」のテキストファイル.
他に UTF-8 のファイルもあるが対応する必要性は未定.
UTF-8 ファイルは Windows のコードでは書いているが,テスト用に存在するのみ.


今までの Windows のコード(tstrmbwc.hxx)では _T や _UNICODE の有無でうまく機能している.
読み込んだ時に _UNICODE の有無でそれぞれの文字コードで保持すればほぼ OK .
「ほぼ」というのは「㎥」の様にシフト JIS にない文字は失われてしまうため.
他にもサロゲートペアにはうまく対応できていない.


Linux でも同様に考えると,読み込んだ時に UTF-8 にすれば良さそう.
wchar_t もあるみたいだが今の時点では考慮しないことにする.
と,思ってテスト用のコードを書いてみたがうまく動作しない.
恐らく変換関連の考え方が理解できていないため.


2020/02 「文字コードを変更してコピー」するツール
https://i–tools.blogspot.com/2020/02/copycc202001.html
「文字コードを変換してコピー」するツール

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

Win10 に IIS と PHP – 5

DB の場所が変わって「ODBC データ ソース アドミニストレーター」で正しく指定.
動作を確認していると,

Provider エラー '80004005'
エラーを特定できません
/_LIB_/L_LogAcc.asp, 行 224

Win10 IIS Provider エラー '80004005' エラーを特定できません
ADODB.recordset の Open でエラー
サイトの再起動を試したが変わらず.
OS を再起動することでうまく通るようになった.


他にもチェックしていると,

HTTP エラー 500.19 - Internal Server Error
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。
エラー情報の詳細:
モジュール CustomErrorModule
通知 SendResponse
ハンドラー ASPClassic
エラー コード 0x800700b7
構成エラー 一意のキー属性 'fileExtension' が '.imo'に設定されている種類 'mimeMap' の重複コレクション エントリを追加できません
構成ファイル \\?\C:\Users\Public\Documents\web\Test\web.config
要求された URL http://localhost:80/Test/ASP/Default.asp
物理パス C:\Users\Public\Documents\web\Test\ASP\Default.asp
ログオン方法 匿名
ログオン ユーザー 匿名
構成ソース:
5: <staticContent>
6: <mimeMap fileExtension=".imo" mimeType="text/imo" />
7: </staticContent>
詳細情報:
このエラーは、Web サーバーまたは Web アプリケーションの構成ファイルの読み取りに問題があるときに発生します。エラーの原因に関する情報が、イベント ログに記録されている場合があります。
詳細情報の表示 »

HTTP エラー 500.19 - Internal Server Error   ページに関連する構成データが無効であるため、要求されたページにアクセスできません。   ハンドラー ASPClassic   エラー コード 0x800700b7
MINE の設定を外して実行すると,

Microsoft VBScript 実行時エラー エラー '800a01ad'
ActiveX コンポーネントはオブジェクトを作成できません。
/_LIB_/L_LstDir.asp, 行 14

Microsoft VBScript 実行時エラー エラー '800a01ad' ActiveX コンポーネントはオブジェクトを作成できません。
コードの部分を見ると,
set oFSys = Server.CreateObject(“AsFile.FileSys”)
「アプリケーション プール」-「詳細設定」-「32 ビット アプリケーションの有効化」を「True」に.
「アプリケーション プール」-「詳細設定」-「32 ビット アプリケーションの有効化」


他にも,

HTTP エラー 500.19 - Internal Server Error
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。
エラー情報の詳細:
モジュール	   CustomErrorModule
通知	   SendResponse
ハンドラー	   StaticFile
エラー コード	   0x800700b7
構成エラー	   一意のキー属性 'fileExtension' が '.imo'に設定されている種類 'mimeMap' の重複コレクション エントリを追加できません
構成ファイル	   \\?\C:\Users\Public\Documents\web\Test\web.config
要求された URL	   http://localhost:80/Test/iisstart.png
物理パス	   C:\Users\Public\Documents\web\Test\iisstart.png
ログオン方法	   匿名
ログオン ユーザー	   匿名
構成ソース:
   17:         <staticContent>
   18:             <mimeMap fileExtension=".imo" mimeType="text/imo" />
   19:         </staticContent>
詳細情報:
このエラーは、Web サーバーまたは Web アプリケーションの構成ファイルの読み取りに問題があるときに発生します。エラーの原因に関する情報が、イベント ログに記録されている場合があります。
詳細情報の表示 »

MIME の設定がダブっているとうまくない様で,下位の方を削除しようとすると

---------------------------
MIME の種類
---------------------------
この操作の実行中にエラーが発生しました。
詳細: 
ファイル名: \\?\C:\Users\Public\Documents\web\Test\web.config
行番号: 18
エラー: 一意のキー属性 'fileExtension' が '.imo'に設定されている種類 'mimeMap' の重複コレクション エントリを追加できません
---------------------------
OK   
---------------------------

MIME の種類   この操作の実行中にエラーが発生しました。
上位の方から順に削除して対応.

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

T90Chi Win10 1803 からの更新

Win10 1803 だった T90Chi が Windows Update 1903 ? の対象に.
そのまま受け入れて進めると 0x80070057 のエラーに.
Win10 1803 Update 0x80070057 エラー
どうしたものかと思ったが「やり直す」を選択.
1 時間程度経ったと思う.
今度は「次の作業が必要です」.
Win10 VirtualBox が対応していないのでアンインストール
VirtualBox をアンインストール.


画面を撮り忘れたが,10 GB 以上の空きがある外部記憶装置が必要に.
追加している SD カードを指定して継続.
また 1 時間程度して再起動の画面.
Win10 1803 からの更新で「今すぐ再起動」
その後なかなか進まない?


4 時間程度経って,
「コンピューターに対する変更を元に戻しています…」のループ.
コンピューターに対する変更を元に戻しています...
更に 2 時間程再起動を繰り返していたが,「電源」+「音量-」でシャットダウンさせた.


T90Chi Windows Update その後
T90Chi Windows Update その後 – 2

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

Windows API で DIB のリサイズ

プログラミング Windows 第5版(上)
第14章 ビットマップと BitBlt
14.4 GDI ビットマップオブジェクト
HelloBit.c より

i_DIB	DIB_resize	(const i_DIB& dib,const SIZE& new_s)
{
	i_DIB	rsz_dib ;
	RECT	rect = {	0,0,	new_s.cx ,	new_s.cy	} ;
	{
		HDC 	hdc  = ::GetDC(NULL) ;
		HDC 	hmem = ::CreateCompatibleDC(hdc) ;
		HBITMAP	hbmp = ::CreateCompatibleBitmap(hdc,rect.right,rect.bottom) ;
		::SelectObject(hmem,hbmp) ;
		::ReleaseDC(NULL,hdc) ;
		::StretchDIBits(hmem,rect,::Get_DIB_RECT(dib),dib) ;
		i_DIB	rsz = ::ToDIB(hbmp) ;
		::DeleteDC(hmem) ;
		::DeleteObject(hbmp) ;
		rsz_dib = rsz ;
		}
	return	rsz_dib ;
	}

::StretchDIBits による DIB のリサイズ

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

GLUT でテクスチャ表示

今度はテクスチャ.次の様なコードで面に貼り付け.

#include	"glut_cg.hxx"
#include	"gonsprmt.hxx"
#include	"i_dib_f.hxx"

i_DIB	tex_01 ;

int	main(int argc, char* argv[])
{
	{
		tstring	test_bmp = _T("./Tex01.bmp") ;
		//     	test_bmp = _T("/run/user/1000/gvfs/smb-share:server=ds116.local,share=web/i_Tools/Doc/blog/3D_Data/Tex01.bmp") ;
		#ifdef  _MSC_VER
		      	test_bmp = _T("//DS116/web/i_Tools/Doc/blog/3D_Data/Tex01.bmp") ;
		#endif
		tex_01 = ::DIB_Load(test_bmp.c_str()) ;
		}
	{
		GonsA	gnsa ;
		{
			Gons1	box = ::Gons_Box(Vd3(5,0,5)) ;
			box.SetColor(0xffffff) ;
			gnsa.push_back(box) ;
			}
		::set_GonsA(gnsa) ;
		::set_Extent(::GonsA_GetExtent(gnsa)) ;
		{
			C_glut*	gm = ::get_c_glut() ;
			gm->BG     = Vd4(0.9) ;
			gm->EP     = Vd3(0,-10,0) ;
			}
		}
	::glutInitWindowPosition(200,100) ;
	::glutInitWindowSize	(600,600) ;
	::glutInitDisplayMode	(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH) ;
	::glutInit           	(&argc,argv) ;
	::glutCreateWindow  	(argv[0]) ;
	::glutReshapeFunc   	(cv_resize) ;
	::glutDisplayFunc   	(cg_display) ;
	::glutKeyboardFunc  	(cv_keyboard) ;
	::glutMouseFunc   	(cv_mouse) ;
	::glutMotionFunc  	(cv_motion) ;
	::cv_init       	() ;
	{
		::glPixelStorei(GL_UNPACK_ALIGNMENT,1) ;
		::glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,tex_01.GetWidth(),tex_01.GetHeight(),0,GL_RGB,GL_UNSIGNED_BYTE,tex_01.GetP_Bits()) ;
		::glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST) ;
		::glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST) ;
		::glEnable(GL_TEXTURE_2D) ;
		}
	::glutMainLoop   	() ;
	return	0 ;
	}

::glTexImage2D の指定と Tex01.bmp の形式が合っていないため
GLUT でテクスチャ表示 間違った GL_RGB の指定でずれている
32 ビット色の画像なので ::glTexImage2D の GL_RGB を GL_RGBA に.
GLUT でのテスクチャ表示 R と B  が合っていない
色の順番が違うので ::glTexImage2D を見ると GL_BGRA_EXT があったのでこれを指定.
GLUT でテクスチャ表示 GL_BGRA_EXT を指定

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

Linux から NAS 上のアクセス

Linux から NAS 上のファイルを読み込むコード


Windows からであれば次の様な指定が可能.
tstring test_imo = _T(“//DS116/web/i_Tools/Doc/blog/3D_Data/Test_cube_line.imo”) ;
使用する関数や API によっては “\\” でないとうまくない場合もある.
tstring test_imo = _T(“\\\\DS116\\web\\i_Tools\\Doc\\blog\\3D_Data\\Test_cube_line.imo”) ;


Linux では mount すれば次の様な指定が可能なことは以前に調べている.
tstring test_imo = _T(“/mnt/ds116/web/i_Tools/Doc/blog/3D_Data/Test_cube_line.imo”) ;
今回は異なる方法で何か方法はないかと調べてみた.
結果としては「ファイルマネージャ」などでアクセスできる状態にする必要があるのであまり mount と変わらない.


調べたのは次の様な手順.
「端末」を開いて ls と入力.
そこに「ファイルマネージャ」からディレクトリをドロップ.
「端末」で「Enter」するとアクセスできることを確認.
Linux から NAS 上のディレクトリの ls
tstring test_imo = _T(“/run/user/1000/gvfs/smb-share:server=ds116.local,share=web/i_Tools/Doc/blog/3D_Data/Test_cube_line.imo“) ;

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

VNC Viewer での画面コピー

検索すると設定があることは見つかるが,設定場所が見当たらない.
VNC Viewer のメニューから「Properties…」を開くと,「Options」タブ内にあった.
VNC Viewer の「画面コピー」の設定
「Pass special keys …」のチェックを外すことで意図した動作に.


2023/04/06
どこが原因かは不明だが,VNC を通した画面コピーで 3 ピクセルずれる.
VNC での画面コピーが 3 ピクセルずれる
「VNC での画面コピーが 3 ピクセルずれる」データのダンプ

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

Python のインストール状態

PyOpenGL を使えるようにしたいと思い Python のインストール状態を調べてみた.
PyOpenGL は Python 2.7 が奨励となっている?


Ubuntu
Python のインストール状態 Ubuntu

iwao@VB-Ubuntu:~$ python

Command 'python' not found, but can be installed with:

sudo apt install python3         # version 3.7.3-1, or
sudo apt install python          # version 2.7.16-1
sudo apt install python-minimal  # version 2.7.16-1

You also have python3 installed, you can run 'python3' instead.

iwao@VB-Ubuntu:~$ python3
Python 3.7.3 (default, Aug 20 2019, 17:04:43) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
iwao@VB-Ubuntu:~$ 

Fedora
Python のインストール状態 Fedora

[Iwao@fedora ~]$ python
bash: python: コマンドが見つかりませんでした...
コマンド python' を提供するためにパッケージ 'python-unversioned-command' をインストールしますか? [N/y] n


[Iwao@fedora ~]$ python3
Python 3.7.4 (default, Jul  9 2019, 16:32:37) 
[GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
[Iwao@fedora ~]$ 

Raspberry Pi
Python のインストール状態 Raspberry Pi

pi@raspberrypi:~ $ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
pi@raspberrypi:~ $ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
pi@raspberrypi:~ $ 

Win10 (VS 2017 , VS 2019)
Python のインストール状態 Win10

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

C:\Users\Iwao>py
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z


C:\Users\Iwao>where py
C:\Windows\py.exe

C:\Users\Iwao>

Python のインストール状態 .../VS/Shared/
VS 2013 以降の「新規プロジェクト」で「Python」がある.
VS 2013 新規プロジェクト Python

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

Win10 で 3mf の読込み – 2

先日うまく開けなかった 3mf
~.model ファイル内の texture の contenttype の指定が間違っていた.
正しくは <texture id=”1″ path=”/duckCM_fix.jpg” contenttype=”image/jpeg” />
コードの修正はまだ.model ファイルをエディタで修正して保存.
contenttype が間違っていたので修正した 3mf
duck_jpeg.3mf

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

Linux から Windows 環境への接続

先日は「ファイルマネージャ」での Windows 環境へのアクセスだったが,今度はマウント.
検索すると以下の所に詳しく書かれていた.
LinuxからWindowsの共有フォルダをマウントするには
実際に操作したのは,
$ sudo mkdir /mnt/_.src
$ sudo mount -t cifs -o username=pi,password=raspberry //Z170S0/Public/…/Develop/_.SRC /mnt/_.src


Fedora ではこれでうまくいったが,Ubuntu ではエラー.
Fedora 環境は先日いろいろ弄って Samba の関係を入れたが Ubuntu はまだだった.
$ sudo apt install samba
$ sudo apt install cifs-utils
* samba のインストールは不要?
Z170S0 ではエラーとなり IP アドレスで指定したらうまくいった.
$ sudo mount -t cifs -o username=pi,password=raspberry //192.168.1.169/Public/…/Develop/_.SRC /mnt/_.src
/mnt/_.src に mount

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