ホーム » メモ (ページ 7)
「メモ」カテゴリーアーカイブ
VC 6 C2059 C2091 C2809 C2954
2001/11 作成のプロジェクトをビルドしたらよくわからないエラー.
--------------------構成: MsgStCon - Win32 Debug-------------------- コンパイル中... MsgStCon.cpp c:\program files\microsoft visual studio\vc98\include\memory(16) : error C2059: 構文エラー : 'string' c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2091: 関数は関数を返せません。 c:\program files\microsoft visual studio\vc98\include\memory(17) : error C2809: 'operator new' に仮引数リストがありません。 c:\program files\microsoft visual studio\vc98\include\memory(20) : error C2954: テンプレートの定義はネストできません。 cl.exe の実行エラー MsgStCon.obj - エラー 4、警告 0
ソースの先頭付近に #include <memory> を追加.
#include "StdAfx.h" #include "MsgStCon.h" #include <memory> // ① OK #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #include <memory> // ② NG // ...
②の位置では現象は変わらず.①の位置に追加する必要がある.
2023/03/24
error C2061 , C2091 , C2809 , C2556
CEdit で文字列の最後を表示させる
エディットボックスに文字列が入りきらない場合に,文字列の最後の方を表示させる方法
例えば次のように UpdateData(FALSE) を呼び出すと CEdit::GetSel では開始位置と終了位置が 0 で戻される.
m_OutFolder = Copy_ccc.GetTarget().c_str() ; UpdateData(FALSE) ;
CEdit::SetSel で文字列の長さを指定することにより最後の位置を選択してその部分が表示されるようにする.
m_OutFolder = Copy_ccc.GetTarget().c_str() ; UpdateData(FALSE) ; int start = m_OutFolder.GetLength() ; int end = m_OutFolder.GetLength() ; m_CtrlOutFolder.SetSel(start,end) ;
int start = m_OutFolder.GetLength()-1 ; int end = m_OutFolder.GetLength()-0 ;
EN_NOHIDESEL を有効にする.
ショートカット作成
ショートカット作成の 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) ; }
サンプル状態では使い勝手が良くないので,幾つか修正.
HRESULT CreateLink ( LPCTSTR lpszPathObj , // LPCWSTR LPCWSTR lpszPathLink , // LPCSTR LPCTSTR lpszDesc , // LPCWSTR LPCTSTR workingFolder , // 作業フォルダ WORD hotkey = 0 // )
_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_IShellLink は _UNICODE かどうかでそれぞれが使用される.
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 バージョン情報を表示して終了する
-p オプションで意図した動作となる.
また GUI 版の「ファイルマネージャ」などでは更新日時などは引き継がれる.
mv コマンドは更新日時は引き継がれる.
Win10 に IIS と PHP – 5
DB の場所が変わって「ODBC データ ソース アドミニストレーター」で正しく指定.
動作を確認していると,
Provider エラー '80004005' エラーを特定できません /_LIB_/L_LogAcc.asp, 行 224
サイトの再起動を試したが変わらず.
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 アプリケーションの構成ファイルの読み取りに問題があるときに発生します。エラーの原因に関する情報が、イベント ログに記録されている場合があります。 詳細情報の表示 »
Microsoft VBScript 実行時エラー エラー '800a01ad' ActiveX コンポーネントはオブジェクトを作成できません。 /_LIB_/L_LstDir.asp, 行 14
コードの部分を見ると,
set oFSys = Server.CreateObject(“AsFile.FileSys”)
「アプリケーション プール」-「詳細設定」-「32 ビット アプリケーションの有効化」を「True」に.
他にも,
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 ---------------------------
T90Chi Win10 1803 からの更新
Win10 1803 だった T90Chi が Windows Update 1903 ? の対象に.
そのまま受け入れて進めると 0x80070057 のエラーに.
どうしたものかと思ったが「やり直す」を選択.
1 時間程度経ったと思う.
今度は「次の作業が必要です」.
VirtualBox をアンインストール.
画面を撮り忘れたが,10 GB 以上の空きがある外部記憶装置が必要に.
追加している SD カードを指定して継続.
また 1 時間程度して再起動の画面.
その後なかなか進まない?
4 時間程度経って,
「コンピューターに対する変更を元に戻しています…」のループ.
更に 2 時間程再起動を繰り返していたが,「電源」+「音量-」でシャットダウンさせた.
ポートを指定してのアクセス
引き続き IIS 環境へのアクセスを調べているが…
幾つか調べたことのメモ
IIS 部分を PHP から呼び出せないかと思い見つけたのが file_get_contents .
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
//www.example.com/ はちゃんと表示できるが,他のサイトなどではうまく表示されないことが多い?
auひかりのルータ Aterm BL190HW の設定を幾つか調べたが,特に影響しているものはなさそう.
ASUS RT-AC86U の設定でいろいろ見ていたら「ポートフォワーディング」が気になった.
試しに DS115j に接続する設定を追加したら,うまく動作する.
外部ポート 8000 内部ポート 80 内部 IP アドレスを 192.168.1.115 に.
http://iwao.synology.me:8000/ でアクセスできる.
同様に Win10 IIS も設定したがうまく接続できない.こうなると Win10 の設定か?
Win10 の設定を見直していたら IPv4 の設定の「デフォルトゲートウェイ」がブランクになっていた.
これを正しく設定したらうまく接続できるようになった.
http://iwao.synology.me:8080/
IPv6 でのアクセス
テスト用に IIS 環境へ接続できないかと…
LAN 内であれば次の様な指定で可能.
//192.168.1.80:8080/
//win10-ltsc:8080/
ASUS RT-AC86U を追加前は BL190HW のポートマッピング設定で設定していた.
LAN 側ホスト 192.168.0.80 プロトコル TCP ポート番号 8080
IPv6 ならそれぞれが指定できると思い試すことに…
指定方法は次のページにあった.
URLで IPv6 のIPアドレスを指定して接続する
DS115jhttp://[240f:33:c6c7:1:211:32ff:fe5f:e655]/Win10http://[240f:33:c6c7:1:241f:8b43:86b9:28de]:8080/Win 7http://[240f:33:c6c7:1:855d:191e:86aa:6fc3]/
LAN 内であれば意図した動作になりアクセスできる.
どこかの設定が足りないみたいで WAN からはアクセスできていない.
2020/04/22 追加
DevXhttp://[240f:33:c6c7:1:81c7:3574:8836:64f6]/
2022/02/20
この時やりたかったことの,仮想ホスト機能などを使った設定.
NAS の仮想ホストの設定
仮想ホストの設定 ポート
2022/04/07
リバースプロキシ
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 ; }
Raspberry Pi に ImageMagick
以前調べた時に入っていた ImageMagick .
先日追加した SD の Pi 環境には入っていないのでインストール.
検索すると sudo apt install ImageMagick とある.が,入力すると,
pi@raspberrypi:~ $ sudo apt install ImageMagick
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
E: パッケージ ImageMagick が見つかりません
正しくは,
sudo apt install imagemagick
パッケージ名は小文字で指定する. imagemagick
Win10 に IIS と PHP のインストール
Win10 環境で PHP を動作させるためのインストールなどの手順
今回使用したのは Win10 LTSC .
通常版に比べて不要なものが入らないのでこれを選択.
以前 Win7 環境に PHP を入れた時の手順
IIS での PHP Web サイトの構成
IIS の有効化.CGI が必要.
IIS の動作の確認.
Web PI のインストール.
Web PI を起動して PHP をインストール.
何故かエラー?
PHP Managet for IIS は複数バージョンの PHP を切替えるツールの様で今回は無くても良いか?
php -v や php -r “phpinfo();” で確認すると動作はしている.
次の内容を php として保存し,ブラウザで開く. <?php phpinfo(); ?>
GLUT でうまく表示されない?
以前作成した現在時刻を WebGL で表示するコードを GLUT を使用した方法に書き直し.
右側の面が正しく表示されていない.
見えない面を表示しない様に判断しているコードは次の様なもの.
{ Vd3 ev = eye ; Vd3 nv ; Vd3 pt ; for (size_t fvIndex=0 ; fvIndex<pia.size() ; fvIndex++) { long fVert = pia[fvIndex].x ; long nVert = pia[fvIndex].y ; Vd3 n1 = ::Vx_get(nrms,nVert) ; Vd3 p1 = ::Vx_get(pnts,fVert) ; nv = nv + n1 ; pt = p1 ; } ev = ev - pt ; nv = nv.Normalized() ; ev = ev.Normalized() ; double theta = ::deg(acos(nv.Dot(ev))) ; if (theta > 90) { continue ; } }
原因は,描画用に与えている視点で目標点が加算されていなかったため.
void draw(void) { GonsA* ga = get_GonsA() ; Vd3 eye = ::get_c_glut()->EP ; // eye+= ::get_c_glut()->TP ; ::GonsA_to_gl(*ga,eye) ; }
最終的にはこのあたり(C_glut)の見直しが必要.
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」するとアクセスできることを確認.
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“) ;
WebGL three.js OBJLoader ‘l’
以前 OBJ 内の線の情報を使えないかと思い調べたが,その時はわからないでいた.
Wiki Wavefront .obj file を参考に OBJ ファイルを編集して three.js で読み込んだがうまく読めなかった.
ちょっと別件で詰まってしまったので気分転換に調べていたら…
次の様な指定だとうまくいきそうとわかった.
l 1/ 2/
l 1/ 2/ 2/ 3/ 3/ 4/ 4/ 1/
UWP アプリ
2016/03 に試してうまく動作しなかった UWP アプリ.
一度起動するがすぐにエラーメッセージ.
—————————
Microsoft Visual Studio
—————————
Windows ストア アプリ ‘5a7750b3-af94-47d7-a064-b9adc49f8813_7r65t4tynye04!App’ をアクティブにできません。アクティベーション要求がエラー ‘操作はサポートされていません。不明なエラー: 0x80040904’ で失敗しました。
この問題のトラブルシューティングについては、ヘルプを参照してください。
—————————
OK ヘルプ
—————————
「そんなもん」と思い触らないでいたが,DirectX があったので今の開発機で試してみた.
するとうまく動作する.
どこかの設定が違うのだろうか?それともライセンスの関係?
Fedora への ssh 接続
Fedora では「設定」-「共有」-「リモートログイン」がそれにあたる.
VS でのリモートの設定 は「ツール」-「オプション」で開いた「クロスプラットフォーム」にある.
プロジェクトの設定も必要で「構成プロパティ」-「全般」の「リモートビルドマシン」.
これが合っていないとビルドエラーになる.
1>------ ビルド開始: プロジェクト: ConsoleApplication1, 構成: Release x64 ------ 1>Validating sources 1>Copying sources remotely to '192.168.1.34' 1>Validating architecture 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Application Type\Linux\1.0\Linux.targets(151,5): error : Current project architecture 'x64' is incompatible with the remote system architecture 'ARM' ('ARM'). Please switch the project architecture to 'ARM' in Configuration Manager. 1>プロジェクト "ConsoleApplication1.vcxproj" のビルドが終了しました -- 失敗。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
Ubuntu では ssh サーバが入っていないみたいで次のコマンドでインストール.
$ sudo apt install openssh-server
何故か password を受け付けない?
Win10 19h1 のコマンドプロンプトで次の様にしても接続できない.
C:\Users\Iwao\AppData\Local\Temp>ssh -l Iwao -p 22 192.168.1.39 Iwao@192.168.1.39's password: Permission denied, please try again. Iwao@192.168.1.39's password:
何か他の設定が足りないのか?
設定関連のドキュメントは次の所にあった.
Linux ワークロードのダウンロード、インストール、セットアップ
VC 2017 Linux プロジェクト
VC 2017 を弄っていたら,Linux のプロジェクトの作成が可能になっていたので試してみた.
どのタイミングだったか忘れたが,SSH 接続が必要になる.
今まで設定してある Raspberry Pi に接続してみた.
Raspberry Pi 側の設定は「Raspberry Pi の設定」-「インターフェイス」にある.
ビルド時に使用する include は以下にコピーされている.これは Raspberry Pi の /user/include と同じ内容?
C:\Users\Iwao\AppData\Local\Microsoft\Linux\HeaderCache\1.0\-1277036696\usr\include
ビルドして出来上がった .out は /home/pi/projects/…/bin/ARM/Release にある.
WebGL three.js r91 – r109
WebGL three.js の r91 以降の変更による影響のメモ
OBJ と MTL を使用しているので webgl_loader_obj_mtl.html の変更内容.
r91 → r96
var mtlLoader = new THREE.MTLLoader(); mtlLoader.setPath( 'models/obj/male02/' ); mtlLoader.load( 'male02_dds.mtl', function( materials ) { materials.preload(); var objLoader = new THREE.OBJLoader(); objLoader.setMaterials( materials ); objLoader.setPath( 'models/obj/male02/' ); objLoader.load( 'male02.obj', function ( object ) { object.position.y = - 95; scene.add( object ); }, onProgress, onError ); });
new THREE.MTLLoader() .setPath( 'models/obj/male02/' ) .load( 'male02_dds.mtl', function ( materials ) { materials.preload(); new THREE.OBJLoader() .setMaterials( materials ) .setPath( 'models/obj/male02/' ) .load( 'male02.obj', function ( object ) { object.position.y = - 95; scene.add( object ); }, onProgress, onError ); } );
→ r97
js/Detector.js がなくなった.
→ r99
r97 var onError = function ( xhr ) { };
r99 var onError = function () { };
→ r101
jsm が追加されている.
→ r105
style が main.css に.
→ r106
module を使用する様に変更されている.
→ r109
setTexturePath が使えなくなったのでコメントに.
// mtlLdr.setTexturePath (imoPath) ; mtlLdr.setPath (imoPath) ;