今Windows98を使っているのですが、最近パソコンの電源を入れると
“必要なDLLファイル PSAPIDLLファイルが見つかりませんでした”
というメッセージが出てくるのですが、なんの事だかわからなくて
いつもOKを押して無視しちゃってるんですが、
これって何ですか? やばいんでしょうか?
パソコンのこと全然詳しくなくて、どうしたら良いのか困っています。
どうすれば良いのか、教えて下さい! お願いします!!

A 回答 (1件)

こんにちは。



psapi.dllはWindowsのsystemファイル(重要ファイル)の1つです。
<どうも、SP(サービスパック)ファイルの1つのようですが。。。>

起動、ネット接続、メール等で使用不可にならないのでしたら、ヤバく!?はないと思います。

もし、気になるようでしたら、SPを入れ直しされるか、オンラインウィルススキャン(参考URL参照)したり、リカバリorOS再インストールされた方が宜しいかと思います。

ご参考程度に。。。

参考URL:http://www.trendmicro.co.jp/hcall/index.asp
    • good
    • 0
この回答へのお礼

今の所は使用不可にはならないみたいなので、ちょっと安心しました。
URLも参考にしながらウィルススキャンなどもやってみようかと思います。
どうもありがとうございました!!

お礼日時:2003/10/18 20:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC++DLLの明示的リンクに関して

DLLを明示的リンク(LoadLibraryとGetProcAddressを使用して)で使うとき、C言語では、関数名がそのまま利用できますが、C++では、オーバーロード機能があるため、関数名が変化してしまいます。C++でDLLを明示的リンクで使用するにはどうしたら良いのですか?

Aベストアンサー

>DLLの中で 関数名が同じで引数が異なる関数を用意したいのですが

単純には不可能。

C++で「引き数が異なる、同一の名前の関数」は「ソースコード上でのみ、同じ名前に見える、異なる関数」です。

DLLを明示的リンクで呼ぶ限り「名前がどうなってようが、引き数が違う関数は、異なる関数」にするしかありません。

それか「printf(char *format, ...)」のように「不定個の引き数」で定義するか(つまり、最初の引き数の中身で、2個目以降の引き数の扱いを変える)

C++で
func();
と書いた時と
func(1,2);
と書いた時、別々の関数が呼ばれるのは、機械語になった時点で
CALL FAR PTR CS:_func_VOID

PUSH 2
PUSH 1
CALL FAR PTR CS:_func_INT_INT
ADD ESP,8
のように「内部的に違うラベルが付いたアドレスをCALLしてくれる」からです。

つまり「本当は違うアドレスをコールして欲しいけど、C++ソース上では同じ名前にしても良いよね。実際に呼ぶアドレスはコンパイラがどっちか判断してね」って事なのです。

これをDLLの明示的リンクでやるのは不可能です。

序数124のDLL関数を、引き数無しで
CALL FAR PTR _DLL_ENTRY_POINT_124
と呼ばれたか、引き数2つで
PUSH 2
PUSH 1
CALL FAR PTR _DLL_ENTRY_POINT_124
ADD ESP,8
と呼ばれたかは、呼ばれた先の「_DLL_ENTRY_POINT_124」では判断できません。

スタック上に並んでいる値が何なのかは、呼ばれた方は判りません。

呼ばれた先では「俺は引き数が3つの筈だ!3つあるとして動く!」と言うように、引き数固定で動作するしかないのです。

「機械語で、どういう命令コードが生成されるか」が判っていれば、簡単に「出来ねえ、不可能」って判る話なのですが。

>DLLの中で 関数名が同じで引数が異なる関数を用意したいのですが

単純には不可能。

C++で「引き数が異なる、同一の名前の関数」は「ソースコード上でのみ、同じ名前に見える、異なる関数」です。

DLLを明示的リンクで呼ぶ限り「名前がどうなってようが、引き数が違う関数は、異なる関数」にするしかありません。

それか「printf(char *format, ...)」のように「不定個の引き数」で定義するか(つまり、最初の引き数の中身で、2個目以降の引き数の扱いを変える)

C++で
func();
...続きを読む

Q“DLLファイル MSVBVM60.DLLが見つかりません”というエラーが出ます。

 ベクターのフリーソフトをDLして実行してみたところ、上記のタイトルのようなエラーメッセージがでてしまいます。どうすればいいでしょうか? このDLLファイルというのはどこかで入手できるようなものでしょうか?

 今回DLしたのはSFX-VCDというVCD鑑賞ソフトです。
 環境はCOMPAQ DESKPRO6000、WIN98、HDD5GB、メモリ64MBというかなり古いPCです。でも、以前はこのPCでDLして鑑賞できてたんです。でもその当時はOSがWIN2000だったのですが、重くてどうしようもなかったのでWIN98に載せ替えました。ひょっとして原因はそのせいしょうか?

 どなたかよいアドバイスをお願い致します。

Aベストアンサー

MSVBVM60.DLL に関するメッセージ をご覧下さい。
http://hp.vector.co.jp/authors/VA017562/setumei/s09md.html

参考URL:http://hp.vector.co.jp/authors/VA017562/setumei/s09md.html

QDLL呼び出しAPのリンクエラーについて

DLL作成初心者です。
当方で簡単なDLLを作成しました。
試しに、下記の呼び出しAP(EXE)を作成しようと
したのですが、リンクエラーになります。
どうしてでしょうか?

呼び出しAP
#include <windows.h>
int main(){
static HINSTANCE hDLL;
hDLL = LoadLibrary(TEXT("DLL_TEST.DLL"));
if (hDLL) FreeLibrary(hDLL);
return 0;
}
リンクエラーは下記
IBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/TEST.exe : fatal error LNK1120: 外部参照 1 が未解決です

また上記"_WinMain@16"のライブラリーをリンクさせると
SCRNSAVE.LIB(scrnsave.obj) : error LNK2005: _main はすでに test.obj で定義されています
SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_ScreenSaverProc@16" は未解決です
SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_ScreenSaverConfigureDialog@16" は未解決です
SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_RegisterDialogClasses@4" は未解決です
Debug/TEST.exe : fatal error
等のエラーになります。

解決策を教えてください。

DLL作成初心者です。
当方で簡単なDLLを作成しました。
試しに、下記の呼び出しAP(EXE)を作成しようと
したのですが、リンクエラーになります。
どうしてでしょうか?

呼び出しAP
#include <windows.h>
int main(){
static HINSTANCE hDLL;
hDLL = LoadLibrary(TEXT("DLL_TEST.DLL"));
if (hDLL) FreeLibrary(hDLL);
return 0;
}
リンクエラーは下記
IBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/TEST.exe : fatal error LNK11...続きを読む

Aベストアンサー

>ロード方法が誤っているのでしょか?
>記述は以下です。
>static HINSTANCE hDLL;
>hDLL = LoadLibrary(TEXT("DLL_TEST.DLL"));
>
>DLLをフルパスで指定しても同じです。

ロード方法は間違ってないですよ。
やはり見えてないだけでは?
もしかして、DLLとして読み込めないか。
ちなみに、どんな感じでフルパス指定しました?


GetLastError()でエラーの詳細を確認してみてください。

Q値段が 安くて、良い  ノートパソコン を探しております。

今 使っている ウインドウズXPが入っている ノートパソコンで、
2回、「 深刻なエラーから 復旧しました 」と
言うメッセージが出てしまい、その後、何とか使用できていますが、
もうこのノートパソコンも
寿命なのかな・・・? と考えております。

本当に故障する前に、次に 使う ノートパソコンを探しているのですが、



(1) 価格ができるだけ 安い ノートパソコン

(2) 最低でも、サポートセンターなどで、1年間無料 保障がつく

(3) できれば 故障しにくいタイプ

(4) DVDドライブが付いていて、DVD-R、DVD-RWへの
書き込みができる

(5)ウインドウズ XP が入っているタイプ
( 今は、XPが入っているタイプはないのでしょうか?
Vista より XPのほうが、使いやすい と聞いているので )
もし、XP がなければ、Vista でもかまいません。

上記で、お勧めのメーカー、ノートパソコンはあるでしょうか?


だいぶ前に、ソーテックのパソコンが安くてよいと
聞いた事があるのですが、今はどうなのでしょうか?
値段も どのくらいか教えていただけると、助かります。

一応、大事なデータは USBメモリなどに
保存してはあります。

パソコンにあまり 詳しくないので、
どうぞよろしくお願いいたします。

今 使っている ウインドウズXPが入っている ノートパソコンで、
2回、「 深刻なエラーから 復旧しました 」と
言うメッセージが出てしまい、その後、何とか使用できていますが、
もうこのノートパソコンも
寿命なのかな・・・? と考えております。

本当に故障する前に、次に 使う ノートパソコンを探しているのですが、



(1) 価格ができるだけ 安い ノートパソコン

(2) 最低でも、サポートセンターなどで、1年間無料 保障がつく

(3) できれば 故障しにくいタイプ

(4) DVDドライブが...続きを読む

Aベストアンサー

絶対的価格で判断するのか、それともコストパフォーマンスを見るのかによって異なると思います。
使ったことのあるノートPCの特徴などを書いておきます。
【SONY】
デザインが良い、よけいなソフト満載、不安定になりやすい、バッテリの寿命が疑問、CPUファンが壊れた(2台とも)、保証期間内サービスは良好だが保証が切れた後の修理代には驚く。
価格は普通だと思う。

【Panasonic】
基本性能がしっかりしていて安定して動作する。
壊れたことがないのでアフターの善し悪しは不明。
価格は少し割高な感じがする。

【Lenovo】
無骨、基本性能がしっかりしていて安定に動作する。
修理パーツの入手性が良い。
修理価格がリーズナブル。
電池寿命が長い。

【富士通】
ごく普通、価格が高い気がする。
モデルによってはパフォーマンスが悪いと思うが最近の物なら大丈夫なのかも。
よけいなソフトというかオンラインサインアップのたぐいが山ほどあって邪魔。

【Dell】
ごく普通、価格が安い。
よけいなソフトなどが付属してこない。
安定に動作する。

絶対的価格で判断するのか、それともコストパフォーマンスを見るのかによって異なると思います。
使ったことのあるノートPCの特徴などを書いておきます。
【SONY】
デザインが良い、よけいなソフト満載、不安定になりやすい、バッテリの寿命が疑問、CPUファンが壊れた(2台とも)、保証期間内サービスは良好だが保証が切れた後の修理代には驚く。
価格は普通だと思う。

【Panasonic】
基本性能がしっかりしていて安定して動作する。
壊れたことがないのでアフターの善し悪しは不明。
価格は少し割高な感じ...続きを読む

Q複数プロジェクトをビルドしたとき、DLLに新しく追加したClassのみがリンクエラーになる

VC++6.0上で、複数の関連するプロジェクトをすべてビルドしたときのリンクエラーで悩んでいます。

現在、ワークスペースには、以下の複数のプロジェクトがあります。
・Mainとなるプロジェクト
・上記のMainプロジェクトがDependしている、DLLのプロジェクト

問題は、DLLプロジェクトに新しいClassを追加したところ、単体でビルドすると成功するにもかかわらず、MainプロジェクトをActiveにしてリビルドしたときに、新しく追加したClassだけが下のように未解決にされてしまうということです。

”error LNK2001: 外部シンボルXXX(追加したクラスのコンストラクタ)は未解決です”

このClassはDLLの内部で使用されており、Mainプロジェクトから直接呼ばれるClassではありません。また、このClassの使用箇所をDLLのソースからコメントアウトすると、リンクエラーは解消されます。

VC++に不慣れかつ、他人の作ったプロジェクトなこともあり、現在の設定内容がいま一つわかっていないところがあります。問題はそのあたりだと思うのですが、はっきりしません・・・。
調べてわかっていることは、以下です。
・Mainプロジェクトから呼ばれるDLLのHeaderファイルにはパスが通っている。
・Mainプロジェクトから呼ばれるDLLのLibraryにはパスが通っている。また、#pragmaによりリンクされている。
・Mainプロジェクトから呼ばれるDLLにはパスが通っている。

ここを確認してみたらどうか?など、ヒントをもらえたらありがたいです。
よろしくお願いいたします。

VC++6.0上で、複数の関連するプロジェクトをすべてビルドしたときのリンクエラーで悩んでいます。

現在、ワークスペースには、以下の複数のプロジェクトがあります。
・Mainとなるプロジェクト
・上記のMainプロジェクトがDependしている、DLLのプロジェクト

問題は、DLLプロジェクトに新しいClassを追加したところ、単体でビルドすると成功するにもかかわらず、MainプロジェクトをActiveにしてリビルドしたときに、新しく追加したClassだけが下のように未解決にされてしまうということです。

”error L...続きを読む

Aベストアンサー

具体的な状況が分からないので推測ですが、
Mainから使用しておらずDLLからもexportしていないのに、
「Mainの方でそのヘッダを(間接的に?)includeしてしまっている」から、
Mainの方でもそのClassが定義されたことになってしまい、
そのの実体がないと言われてると言うことはありませんか。

ヘッダの依存関係がうまく整理できてないせいかな?という印象です。
無闇にincludeされてませんか。
本当にDLL内のみでしか使わず、Mainと無関係ならば、
Mainがincludeするヘッダファイルでは、そのClassが定義されないようにしてください。

代替策は、そのクラスもDLLからexportすることですが、
どちらが適しているかは実際のクラスの役割にもよるかと。

Qdllファイルについて

お願いします。

Shell32.dllファイルの最新バージョンの入手は
可能でしょうか?

ダウンロードサイトなどありましたら教えて頂きたいです。

お願いします。

Aベストアンサー

> Shell32.dllは、OSやアプリケーション毎に違うものなのでしょうか?
>
少し古いデータではありますが,参考URLのページを見る限りでは,OSとIEとが密接に関係しているようですね。(実は,IE 4.0からはOSの根幹を書き換えているフシがあります。それにより,古いバージョンのOSでも新しいバージョンのOSと同じような使い心地を実現しているのです)

> たとえば、WindowsMEのShell32.dllをWindows2000に入れても良いのでしょうか?
>
このことはですね,問題ないと思われます。
昨日の私の回答欄でIE6についているShell32.dllのバージョンは「4.72.3612.1700」と書きましたが,IE6のセキュリティホール問題が発覚したため,書き込みのあと,新たにIE6をダウンロードしてみたところ,Shell32.dllのバージョンが「5.50.4134.100」に変わっていました。
今,このIE6をダウンロードしてインストールすることでバージョン「5.50.4134.100」のShell32.dllがインストールされるわけですから,Windows 2000でもOKだとMicrosoft社は認めたわけです。
ただ,先にも書きましたが,私のパソコンのOSはWindows Meですので,Windows 2000で使用しても本当に大丈夫かと言うことは,はっきりとは言えません。
また,矛盾する様ではありますが,より安全にShell32.dllをインストールするためにIE6と一緒にインストールすることをお勧めします。
ただし,OSの根幹にかかわる変更を伴うため,作業はchibitotoroさん御自身の責任の上で行ってください。

Internet Explorer 6 日本語版 ダウンロードページ
http://www.microsoft.com/japan/ie/downloads/ie6/

参考URL:http://member.nifty.ne.jp/~ij/soft/ijpatshl.htm

> Shell32.dllは、OSやアプリケーション毎に違うものなのでしょうか?
>
少し古いデータではありますが,参考URLのページを見る限りでは,OSとIEとが密接に関係しているようですね。(実は,IE 4.0からはOSの根幹を書き換えているフシがあります。それにより,古いバージョンのOSでも新しいバージョンのOSと同じような使い心地を実現しているのです)

> たとえば、WindowsMEのShell32.dllをWindows2000に入れても良いのでしょうか?
>
このことはですね,問題ないと思われます。
昨日の私...続きを読む

QDLLからEXEのクラスを呼び出すとリンクエラーになります。

私は昔VC++6.0を少し触っただけの初心者に近い状態のレベルです。
作っているプログラムは、1つのソリューションの中にEXE実行するプロジェクトとDLLを作るプロジェクトの2つプロジェクトを含んでいます。

DLL側からEXEのクラスを使用すると、ビルド時にリンクエラーになります。LNK2019でシンボルのエラーなのですが、なぜそうなのか?がわかりません。

ご教授いただけますでしょうか。

<ソリューションの構成>
A ソリューション
 Aプロジェクト(.exe)
AAクラス
ERR親クラス ← ERR子クラスの継承
Bプロジェクト(.dll) 静的リンク(.defファイル使用)
BAクラス

BAクラスの実装
{
 try
{
  throw ERR子クラス
}
catch(ERR子クラス)
{

}
}

やりたいことは、BプロジェクトにあるERR子クラスをBプロジェクトと
Cプロジェクトの両方で使用したいです。

ビルド時に上のBAクラスのERR子クラスのところでコンパイルはとおるのですが、リンクエラーになります。エラーコードはLNK2019です。

何が足りないのでしょうか?
dllからexeのクラスを呼び出すようなことはできないのでしょうか?
このやり方自体に問題があり、他の方法にする方がいいですか?

ERR親クラス、ERR子クラスともヘッダー定義があり。
CAクラスのヘッダー定義内でinclude宣言しています。
versionはVC2003++です。

よろしくお願いします。

私は昔VC++6.0を少し触っただけの初心者に近い状態のレベルです。
作っているプログラムは、1つのソリューションの中にEXE実行するプロジェクトとDLLを作るプロジェクトの2つプロジェクトを含んでいます。

DLL側からEXEのクラスを使用すると、ビルド時にリンクエラーになります。LNK2019でシンボルのエラーなのですが、なぜそうなのか?がわかりません。

ご教授いただけますでしょうか。

<ソリューションの構成>
A ソリューション
 Aプロジェクト(.exe)
AAクラス
ERR親クラス ← ERR子...続きを読む

Aベストアンサー

EXEの中のクラス定義を DLL側にヘッダーのみしか使わないとその実態が無いことになってしまいます

VC++のメニューで プロジェクト > プロパティ > 構成のプロパティ > リンカ > 追加の依存ファイルに
ERRクラスで生成されたObjファイルを指示してみましょう

次に依存関係を設定しておいたほうがいいでしょう
Bプロジェクトは AプロジェクトのERRクラスに依存しているのですから
Aプロジェクトを先に構築しないと ERRクラスのOBJファイルが生成できません
プロジェクト > プロジェクト依存関係 で プロジェクト(R)をBプロジェクト > 依存先(D)で Aプロジェクト にチェック
としましょう

Cプロジェクトの方も同じですね
プロジェクト(R)を Cプロジェクト
依存先(D)を Bプロジェクト
にします

Cプロジェクトの 追加の依存ファイルに BプロジェクトのLibファイルを追加しましょう

QDLLファイルの関連付けについて

ゲームをダウンロードしたのですが、DLLファイルがないので、起動できないとなり。
それで、DLLファイルをダウンロードしたのですが、関連付けがされていないとのことでした。
どうすれば、これが出来ますでしょうか。

Aベストアンサー

>関連付けがされていないとのことでした

一般に、DLLファイルは、それを必要とする実行ファイル(EXEファイル)と同じフォルダに入れておけば、認識して関連つけられるはずです。
今回は、ゲームのフォルダに入れればOKと思います。

何をされて、「関連付けがされていない」といわれてのでしょう?

QBCBで作成したDLLを、VC++で静的リンクさせる方法

BCBで作成したDLLを、VC++で静的リンクさせる方法

Borland C++ Builderで作成したDLLを、VC++アプリケーションで利用できるように
LIBファイルに変換したいのですが、上手くいきません。

下記の手順を踏みました。

1. BCBでDLL作成
  「VC++スタイルのDLL」で作成、
  「VCLを使う」「CLXを使う」「マルチスレッドを使う」はチェックせず
2. コマンドラインで「IMPDEF.exe」を使用して、dllからdefファイル作成
  (IMPDEF.exeは、\Borland\CBuilder6\Binに格納されていた)
3. コマンドラインで「LINK.exe」「LIB.exe」を使用して、defからlibファイル作成
  (LINK.exeとLIB.exeは、\Microsoft Visual Studio\VC98\Binに格納されていた)
4. VC++プロジェクトファイルを保存したフォルダに、DLLファイルとlibファイルをコピー
5. VC++の「プロジェクト」-「設定」-「リンク」-「オブジェクト/ライブラリモジュール」に
  作成したlibファイルを追加

VC++プロジェクトをビルドすると、下記のエラーメッセージが表示されます。

/////////////////////////////////////////////////////////////////////////////////
dllread.obj : error LNK2001: 外部シンボル "__imp__(関数名)@0" は未解決です
LIBC.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Release/dllread.exe : fatal error LNK1120: 外部参照 2 が未解決です。
link.exe の実行エラー
/////////////////////////////////////////////////////////////////////////////////

BCBとVC++のバージョンは、下記の通りです。

BCB Professional 6.0
VC++ 6.0

ちなみに、同じDLLを動的リンクで利用することは出来ました。

初心者の質問で申し訳ございませんが、解決策が分かる方がいらっしゃいましたら
教えていただけないでしょうか?

BCBで作成したDLLを、VC++で静的リンクさせる方法

Borland C++ Builderで作成したDLLを、VC++アプリケーションで利用できるように
LIBファイルに変換したいのですが、上手くいきません。

下記の手順を踏みました。

1. BCBでDLL作成
  「VC++スタイルのDLL」で作成、
  「VCLを使う」「CLXを使う」「マルチスレッドを使う」はチェックせず
2. コマンドラインで「IMPDEF.exe」を使用して、dllからdefファイル作成
  (IMPDEF.exeは、\Borland\CBuilder6\Binに格納されていた)
3. コマンドラインで「LINK.e...続きを読む

Aベストアンサー

詳しくはよくわからないのですが、気になるところだけ。

_imp__(関数名)@0

関数名に @ がつくのは、__stdcall タイプの関数です。
プロトタイプ宣言に、__stdcall または WINAPI が付いていませんか。

DependencyWalker で、DLLのエクスポート関数名を見てみましょう。

Qプログラム開始エラー MSCOREE.DLLファイルが見つかりません

あるソフト(exeファイル)をインストールしようとすると「プログラム開始エラー必要なDLLファイルMSCOREE.DLLが見つかりません」という表示が出ます。windows98でやっていますが検索してもさっぱりわかりません。よろしかったらアドバイス頂けないでしょうか?急いでいます。お願いします。

Aベストアンサー

「mscoree.dll」は、Microsoft .NETランタイム実行ライブラリです。
何のソフトをインストールするのかわかりませんが、WindowsUpdateで、
Microsoft .NETフレームワーク日本語版をインストールしてみてはいかがでしょう?


人気Q&Aランキング