Visual C++ 6.0上でコンパイルできたソースをVisual C++ 2005 Express Edition上でコ
ンパイルしてみると下記のエラーが生じてしまいます。尚, Platform SDKを
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/ を参照し
てインストールしています。
エラー内容:
'IbpciDllOpne': 識別子が見つかりませんでした
'FARPROC' : 呼び出しに対する引数が多すぎます。
Visual C++ 2005 Express Editionの設定等が必要なのでしょうか?
Visual C++ 6.0でコンパイルできてもVisual C++ 2005 Express Edition上でコンパイル
できない場合もあるのでしょうか。
なにか,エラー内容でお気づきの点がございましたらご助言いただけると幸いです。
宜しくお願いいたします。
コンパイラーが変わるとビルドが通らなくなると言うのは普通にありえますよ。
というよりさっくり通ってしまうとかえって不安になったり。(^^;
ソースの提示も無いのでエラーの内容に関しては何とも言いかねますけれど、
きちんとエラー内容を把握して原因を追究する事をお勧めします。
PATIO さんありがとうございました。
ソースの中身で重要だと思われる部分を抜き出しました。VC++6.0では実行可能です。
ソースの中でメインルーチンにて
pIbpciInPortByte(A,&a);//Aにはポートを定義しています。
ヘッダファイルにて
//エクスポートAPIのアドレス保存用変数
static FARPROC pIbpciInPortByte;
//DLLオープンとAPIのアドレス取得
pIbpciInPortWord = GetProcAddress(hDLL, _T(IbpciInPortWord));
となっております。
デバック時にエラーが出ます。詳細に関しては以下のとおりです。
「static FARPROC pIbpciInPortByte」と、書いた後メインルーチンでpIbpciInPortByteを
使うと
「'FARPROC' : 呼び出しに対する引数が多すぎます。」とエラーが出るのですが分かる方、教
えていただけないでしょうか。
「プロトタイプが旧い形式だから」が原因なのでしょうか?
この場合のエラーについて対処方法などご存知の方がいらっしゃったら教えていただければ幸い
です。
よろしくお願いします。
> デバック時にエラーが出ます。
コンパイル時? それとも実行時?
>「プロトタイプが旧い形式だから」が原因なのでしょうか?
YES. 型(プロトタイプ)を合わせましょう。
あと一言付け加えるならば、動いている事=正しいコードとはなりません。
偶々運よく動いている場合もありますし、
特定の状況にならないと出てこないような潜在バグを持っているような場合もあります。
きちんとソースを検証してソース上に問題がない事を確認する必要というのは
常に存在します。
あと、デバッグというのはビルドが通らないと出来ないはずですが、
ビルドが通らないのですか?それともデバッグビルドした後の実行でエラーが出るのですか?
皆様方ご助言ありがとうございます。
おかげさまでエラーが解消し(作成するためのプロジェクトが原因でした)、コンパイルができる
ようになりました。コンパイルは通るのですが、デバッグで下記のようなエラーが出てしまいま
す。いろいろと調べているのですが分からないです。
このデバッグに関するエラーはいったい何なのでしょうか。
たびたび申し訳ございませんが、皆様方のお力をお貸しいただければ嬉しいです。
よろしくお願いいたいます。
シンボルが読み込まれました。
'C:\WINNT\system32\NTDLL.DLL' を読み込みました。必要な DBG ファイルが見つからない
か、開けません。
'C:\WINNT\system32\KERNEL32.DLL' を読み込みました。必要な DBG ファイルが見つからな
いか、開けません。
'C:\WINNT\system32\msvcr80d.dll' を読み込みました。シンボルが読み込まれていません。
'C:\WINNT\system32\msvcrt.dll' を読み込みました。シンボルが読み込まれていません。
'C:\WINNT\system32\ibpci.dll' を読み込みました。バイナリはデバッグ情報と一緒にビル
ドされませんでした。
ソレ全部エラーぢゃない正常表示です。無視してください。
tetrapodさん、ありがとうございました。
皆様方有難うございました。