前の10件 | -
DLL '*.DLL'を読込めません。 Windows7 [問題解決]
あるプログラム(仮にA.EXEとする。B.DLLを呼び出している。)をWindows7で起動したところ下記下記エラーが発生した。
=====================
DLL '(B. DLL 名 )' を読み込めません: 指定されたモジュールが見つかりません。
(HRESULT からの例外: 0x8007007E)
=====================
A.EXEと同じフォルダにB.DLLも存在するがエラーとなる。
【結果】
msvcr120.dllとmsvcp120.dllを同フォルダに追加したら動作した。
各種DLLはhttp://jp.dll-files.com/で入手可能である。
【参考】
B.DLLを呼び込むのに必要なDLLを見つけるにはDependency Walkerで参照可能。
「Dependency Walker」は、このようなDLLファイルの依存関係を表示する、Microsoft社製の無償のツールである。
=====================
DLL '(B. DLL 名 )' を読み込めません: 指定されたモジュールが見つかりません。
(HRESULT からの例外: 0x8007007E)
=====================
A.EXEと同じフォルダにB.DLLも存在するがエラーとなる。
【結果】
msvcr120.dllとmsvcp120.dllを同フォルダに追加したら動作した。
各種DLLはhttp://jp.dll-files.com/で入手可能である。
【参考】
B.DLLを呼び込むのに必要なDLLを見つけるにはDependency Walkerで参照可能。
「Dependency Walker」は、このようなDLLファイルの依存関係を表示する、Microsoft社製の無償のツールである。
WindowsDLLでのUSBケーブル抜き差し検出方法 [問題解決]
WindowsDLLでUSBメモリー抜き差しを検出する必要があり、
予定より時間が掛かったのでここに記載しておく。
USBメモリーの抜き差しはSetWindowsHookEx()利用にてイベントを取り込むことが可能であるが、
独自デバイスのイベントはRegisterDeviceNotification()を必要とする。
更にRegisterDeviceNotification()はWindowハンドルを必要とするので、
標準でWindowsハンドルのないDLLは、MessageOnlyのWindowを生成して実現しなければならない。
下記は参考のC言語ソース。
https://docs.google.com/document/d/1FOl0h3abWdWLXqigmDWjFGs5tgsg6pe6poinTtBAcGY/edit?hl=ja
予定より時間が掛かったのでここに記載しておく。
USBメモリーの抜き差しはSetWindowsHookEx()利用にてイベントを取り込むことが可能であるが、
独自デバイスのイベントはRegisterDeviceNotification()を必要とする。
更にRegisterDeviceNotification()はWindowハンドルを必要とするので、
標準でWindowsハンドルのないDLLは、MessageOnlyのWindowを生成して実現しなければならない。
下記は参考のC言語ソース。
https://docs.google.com/document/d/1FOl0h3abWdWLXqigmDWjFGs5tgsg6pe6poinTtBAcGY/edit?hl=ja
VB6 MSCOMM Port17以上対応 [問題解決]
古いプログラムを変更する仕事があり、ちょっと手こずったので記載する。
◆問題:MSCOMMのPortNoで17以上が設定できない。
◆原因:VB6の仕様
◆対策:OCXのパッチ
下記プログラムをパッチを当てることで実現可能である。
パッチファイル:mscomm32.ocx
格納フォルダ:C:\windows\system32\ 'windowsXPの場合
パッチ内容:上記ファイルをバイナリエディッタで開き、『3D,10,00』を検索して
真ん中の10を63に変更する。これで、1~99までの設定が可能となる。
いつまで参照可能かわからないが、とりあえず参考にしたURL:
http://www.tek-tips.com/viewthread.cfm?qid=1347924
◆問題:MSCOMMのPortNoで17以上が設定できない。
◆原因:VB6の仕様
◆対策:OCXのパッチ
下記プログラムをパッチを当てることで実現可能である。
パッチファイル:mscomm32.ocx
格納フォルダ:C:\windows\system32\ 'windowsXPの場合
パッチ内容:上記ファイルをバイナリエディッタで開き、『3D,10,00』を検索して
真ん中の10を63に変更する。これで、1~99までの設定が可能となる。
いつまで参照可能かわからないが、とりあえず参考にしたURL:
http://www.tek-tips.com/viewthread.cfm?qid=1347924
Windows7起動せず [問題解決]
コマンドプロンプトで『Bcdedit /set nx AlwaysOff』を実行して問題解決した。
DEP(データ実行防止)の無効化である。
Win7にあるフリーソフト(USB関係ツール)をインストールしてハングする問題が発生した。
キー操作もマウス操作も全く動作しない。
しかたなく強制終了(電源ボタンの長押し)させる。
再起動では当然、不正停止のメッセージが表示され、セーフモードを含めた選択画面が表示された。
通常起動を指定するがパスワード入力時点全く動作しない。
しかたなく、これまた強制終了して、
今度はセーフモードを選択した。起動はできたのだが、
しばらく(数秒、数十秒?)エクスプローラのエラーとなり、操作できない。
(ネットを検索してみると同じ症状の問題が提起されていた。これはWindowsのバグらしい)
『セーフモード(コマンドプロンプト)』起動ではエクスプローラのエラーは発生しない。
この状態で上記のとおり、bcdeditにて問題解決できた。
その後は管理者モードでコマンドプロンプトを開いて、
『bededit nx OptIn』にてDEPを有効にした。
今回の問題解決はネット情報のおかげである。
情報提供者には感謝する次第である。
DEP(データ実行防止)の無効化である。
Win7にあるフリーソフト(USB関係ツール)をインストールしてハングする問題が発生した。
キー操作もマウス操作も全く動作しない。
しかたなく強制終了(電源ボタンの長押し)させる。
再起動では当然、不正停止のメッセージが表示され、セーフモードを含めた選択画面が表示された。
通常起動を指定するがパスワード入力時点全く動作しない。
しかたなく、これまた強制終了して、
今度はセーフモードを選択した。起動はできたのだが、
しばらく(数秒、数十秒?)エクスプローラのエラーとなり、操作できない。
(ネットを検索してみると同じ症状の問題が提起されていた。これはWindowsのバグらしい)
『セーフモード(コマンドプロンプト)』起動ではエクスプローラのエラーは発生しない。
この状態で上記のとおり、bcdeditにて問題解決できた。
その後は管理者モードでコマンドプロンプトを開いて、
『bededit nx OptIn』にてDEPを有効にした。
今回の問題解決はネット情報のおかげである。
情報提供者には感謝する次第である。
タグ:Windows7
プログラムソース(C言語)ファイル開発ツール [プログラミング]
他人が作ったプログラムを変更することにになり、
解析ツールを探してみた。
インターネットをググってDoxygen+Graphvizが使えそうであることを知る。
Windows7パソコンにインストールして利用した。
インクルード依存関係図、呼出しグラフ(Graphviz 2.26.3)など満足して使える。
ちなみに、このソフトで出力したXMLファイルをもとにUMLデータ入力として利用する市販ソフトもある。
私なりの注意点:
①INPUTソースがSHIFT-JISならINPUT_ENCODINGでCP932を指定する。
②呼出しグラフを作成する場合はDOTを指定する。
DOT_PATHでグラフツールのインストール先『C:/Program Files/Graphviz2.26.3/bin』(デフォルトインストール先)を指定する。
③出力結果に日本語表示を指定したい場合はOUTPUT_LANGUAGEにJapaneseを指定する。
解析ツールを探してみた。
インターネットをググってDoxygen+Graphvizが使えそうであることを知る。
Windows7パソコンにインストールして利用した。
インクルード依存関係図、呼出しグラフ(Graphviz 2.26.3)など満足して使える。
ちなみに、このソフトで出力したXMLファイルをもとにUMLデータ入力として利用する市販ソフトもある。
私なりの注意点:
①INPUTソースがSHIFT-JISならINPUT_ENCODINGでCP932を指定する。
②呼出しグラフを作成する場合はDOTを指定する。
DOT_PATHでグラフツールのインストール先『C:/Program Files/Graphviz2.26.3/bin』(デフォルトインストール先)を指定する。
③出力結果に日本語表示を指定したい場合はOUTPUT_LANGUAGEにJapaneseを指定する。
Windows7+GIGABYTE起動時警告 [問題解決]
GIGABYTEのマザーボードパソコンにWindows7をインストールしたら、
起動時に警告が表示される。プログラム名:”GUI MFC Application”、メーカー:”GIGABYTE UNITED INC”
調べてみたら、GUI.EXで警告メーセージを表示していることが原因のようだ。
GUI.EXEは”Easy Tune6”をインストールしたときに自動起動されるようになっている。
”Easy Tune6”は特にいらないと判断して、アンインンストールした。
当たり前のことだが、これにて起動時のメッセージはでなくなった。
起動時に警告が表示される。プログラム名:”GUI MFC Application”、メーカー:”GIGABYTE UNITED INC”
調べてみたら、GUI.EXで警告メーセージを表示していることが原因のようだ。
GUI.EXEは”Easy Tune6”をインストールしたときに自動起動されるようになっている。
”Easy Tune6”は特にいらないと判断して、アンインンストールした。
当たり前のことだが、これにて起動時のメッセージはでなくなった。
OKI-ADPCM変換 [音声]
OKI-ADPCM圧縮データをWinXPで再生させることに苦労した。
同じ苦労される人がいるのではないかと思いやったことを簡単に記載する。
WindowsではOKI-ADPCM再生をサポートしていないので、
一旦サポートするWAV形式に変換する必要がある。
◆入力形式
ML2308でサンプリング8000Hz、モノラル、4ビットADPCM2変換したデータ。
◆出力形式
フォーマットIDは0x01(PCM)の16ビットデータ。
◆処理
世の中にはありがたい人がいるもので、
ベースとなるプログラムは”Google Code Search”で見つけたソース(圧縮ファイルのoki_adpcm.c)をもとにして作成した。
ベースはUNIX系の開発環境なので、Windows環境にする必要がある。
OKI_ADPCMデータファイル入力を入力して、PCMデータファイルを出力するプログラムを作った。
変換結果にバイナリーエディッターでWavのヘッダーを付加して、
サウンドレコーダーで再生できることを確認した。
ちなみにWAV形式からOKI-ADPCMに変換するプログラムは沖さんで提供している。
出力ファイルは独自フォーマットで16バイトのヘッダーが出力されるファイル(拡張子.adb)である。
ヘッダーは+8~+9がサンプリング、+0xc~+0xfがデータサイズ、+0x10~データと思われる。
同じ苦労される人がいるのではないかと思いやったことを簡単に記載する。
WindowsではOKI-ADPCM再生をサポートしていないので、
一旦サポートするWAV形式に変換する必要がある。
◆入力形式
ML2308でサンプリング8000Hz、モノラル、4ビットADPCM2変換したデータ。
◆出力形式
フォーマットIDは0x01(PCM)の16ビットデータ。
◆処理
世の中にはありがたい人がいるもので、
ベースとなるプログラムは”Google Code Search”で見つけたソース(圧縮ファイルのoki_adpcm.c)をもとにして作成した。
ベースはUNIX系の開発環境なので、Windows環境にする必要がある。
OKI_ADPCMデータファイル入力を入力して、PCMデータファイルを出力するプログラムを作った。
変換結果にバイナリーエディッターでWavのヘッダーを付加して、
サウンドレコーダーで再生できることを確認した。
ちなみにWAV形式からOKI-ADPCMに変換するプログラムは沖さんで提供している。
出力ファイルは独自フォーマットで16バイトのヘッダーが出力されるファイル(拡張子.adb)である。
ヘッダーは+8~+9がサンプリング、+0xc~+0xfがデータサイズ、+0x10~データと思われる。
組み込みソフト開発設定 [調査]
ルネサスのHEWで開発しているとき、初期化あり領域がRAMに展開されない問題にはまってしまった。
例 int a=123;
このエリアがDエリアとなり、データを変更することができない。
Rエリアに定義する方法を調べて下記設定で実現可能であることが、
分かった。
メニュー→ビルド→SuperH~→最低化リンカ→カテゴリ→出力→オプション項目
→ROMからRAmへマップするセクションで
追加にてD→Rを追加する。
分かれば簡単であるが、当初時間的余裕が無くて、
初期化あり変数は使っていなかった。
初期化関数を作成して、この関数内で初期化していた。
例 int a=123;
このエリアがDエリアとなり、データを変更することができない。
Rエリアに定義する方法を調べて下記設定で実現可能であることが、
分かった。
メニュー→ビルド→SuperH~→最低化リンカ→カテゴリ→出力→オプション項目
→ROMからRAmへマップするセクションで
追加にてD→Rを追加する。
分かれば簡単であるが、当初時間的余裕が無くて、
初期化あり変数は使っていなかった。
初期化関数を作成して、この関数内で初期化していた。
通信規格V23対応モデム [通信機器]
モデム内蔵古い装置とパソコンをモデムを介して接続したところ、なんどやっても接続できない。
装置のモデムIC()を調査したところ、通信規格がV23対応のモデムとのことがわかり、
急遽V23対応のモデムを準備して対応した。
装置のモデムIC()を調査したところ、通信規格がV23対応のモデムとのことがわかり、
急遽V23対応のモデムを準備して対応した。
NOD32でのウイルス検出
NOD32でのウイルス検出で下記の検出結果が出た。
C:\System Volume Information\_restore{DB8C3F5E-7CA9-4493-80E0-60B16B029618}\RP1143\A0248535.exe - Win32/Adware.Optmedia アプリケーション
C:\System Volume Information\_restore{DB8C3F5E-7CA9-4493-80E0-60B16B029618}\RP1143\A0248536.dll - Win32/Adware.Optmedia アプリケーション
駆除指定で削除した。
ところで、”System Volume Information”のフォルダは何の意味があるのか疑問に思い調べてみた。
どうもシステムの復元用のバックアップフォルダとのこと。
この指定はマイコンピュータ→プロパティ→システムの復元で設定する。
デフォルトでは全てのドライブでシステムの復元を無効にするが未チェック(復元有効)になっている。
ちなみにsymantecではこの設定に関する詳しい情報がある。
http://service1.symantec.com/support/INTER/entsecurityjapanesekb.nsf/jp_docid/20040617125451949?OpenDocument&dtype=corp
参照されたし。
C:\System Volume Information\_restore{DB8C3F5E-7CA9-4493-80E0-60B16B029618}\RP1143\A0248535.exe - Win32/Adware.Optmedia アプリケーション
C:\System Volume Information\_restore{DB8C3F5E-7CA9-4493-80E0-60B16B029618}\RP1143\A0248536.dll - Win32/Adware.Optmedia アプリケーション
駆除指定で削除した。
ところで、”System Volume Information”のフォルダは何の意味があるのか疑問に思い調べてみた。
どうもシステムの復元用のバックアップフォルダとのこと。
この指定はマイコンピュータ→プロパティ→システムの復元で設定する。
デフォルトでは全てのドライブでシステムの復元を無効にするが未チェック(復元有効)になっている。
ちなみにsymantecではこの設定に関する詳しい情報がある。
http://service1.symantec.com/support/INTER/entsecurityjapanesekb.nsf/jp_docid/20040617125451949?OpenDocument&dtype=corp
参照されたし。
前の10件 | -