Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

メモ

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

C2059 C2091 C2809 C2954


ソースの先頭付近に #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

//	...

②の位置では現象は変わらず.①の位置に追加する必要がある.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


CEdit で文字列の最後を表示させる

エディットボックスに文字列が入りきらない場合に,文字列の最後の方を表示させる方法
CEdit::SetSel length
例えば次のように 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) ;

2020/01/22 
選択文字列を常に強調表示するには,
「No Hide Selection」を Treu に

	int	start	= m_OutFolder.GetLength()-1 ;
	int	end	= m_OutFolder.GetLength()-0 ;

EN_NOHIDESEL を有効にする.
Edit Control  No Hide Selection

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


ショートカット作成

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


サンプルの ::CreateLink を利用したコード.
呼出している所は次の様なコード.lnk がなければ CreateLin .あれば削除.
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
この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


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 コマンドは更新日時は引き継がれる.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


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 の種類   この操作の実行中にエラーが発生しました。
上位の方から順に削除して対応.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


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 時間程再起動を繰り返していたが,「電源」+「音量-」でシャットダウンさせた.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


ポートを指定してのアクセス

引き続き 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/ でアクセスできる.
RT-AC86U ポートフォワーディングの設定
同様に Win10 IIS も設定したがうまく接続できない.こうなると Win10 の設定か?


Win10 の設定を見直していたら IPv4 の設定の「デフォルトゲートウェイ」がブランクになっていた.
Win10 IIS IPv4 「デフォルトゲートウェイ」の設定
これを正しく設定したらうまく接続できるようになった.
http://iwao.synology.me:8080/

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


IPv6 でのアクセス

テスト用に IIS 環境へ接続できないかと…
LAN 内であれば次の様な指定で可能.
//192.168.1.80:8080/
//win10-ltsc:8080/


ASUS RT-AC86U を追加前は BL190HW のポートマッピング設定で設定していた.
LAN 側ホスト 192.168.0.80  プロトコル TCP  ポート番号 8080
2 重ルータにする前のポートマッピング設定


IPv6 ならそれぞれが指定できると思い試すことに…
指定方法は次のページにあった.
URLで IPv6 のIPアドレスを指定して接続する

DS116  http://[240f:33:c6c7:1:211:32ff:fe7f:75a6]/
DS115j http://[240f:33:c6c7:1:211:32ff:fe5f:e655]/
Win10  http://[240f:33:c6c7:1:241f:8b43:86b9:28de]:8080/
Win 7  http://[240f:33:c6c7:1:855d:191e:86aa:6fc3]/

LAN 内であれば意図した動作になりアクセスできる.
どこかの設定が足りないみたいで WAN からはアクセスできていない.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


WebGL three.js r111

WebGL three.jsr111
その中に 3MF テクスチャ があった.
three.js r111 3mf テクスチャ
3mf を自前のファイルに差替えて試したがうまく表示できなかった.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 1 人中 1 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ


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 のリサイズ

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。