DXライブラリを使ったソースがコンパイルに通らない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
窓枠

DXライブラリを使ったソースがコンパイルに通らない

#1

投稿記事 by 窓枠 » 14年前

コード:

[font=Courier New]#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hPrevInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

if(DxLib_Init() == -1) { return -1; }

}[/font]
みたいなコードを書いてファイルに保存しました。
そのファイルを保存したフォルダと同じところにDXライブラリ(BCC用)のファイルを
置き、コンパイル(コマンドライン上から)したところ

エラー E2141 hopping-toralu\DxDirectX.h 891: 宣言の構文エラー
警告 W8094 hopping-toralu\DxLib.h 94: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
警告 W8094 hopping-toralu\DxLib.h 95: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
警告 W8094 hopping-toralu\DxLib.h 96: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
エラー E2238 hopping-toralu\ht.c 3: 'hPrevInstance' の宣言が複数見つかった
エラー E2356 hopping-toralu\ht.c 4: 'WinMain' の再宣言で型が一致していない
エラー E2344 c:\borland\bcc55\Include\winbase.h 1267: 一つ前の 'WinMain' の定義
位置
警告 W8065 hopping-toralu\ht.c 6: プロトタイプ宣言のない関数 'DxLib_Init' の呼び
出し(関数 WinMain )
警告 W8070 hopping-toralu\ht.c 8: 関数は値を返すべき(関数 WinMain )
警告 W8057 hopping-toralu\ht.c 8: パラメータ 'hPrevInstance' は一度も使用されな
い(関数 WinMain )
警告 W8057 hopping-toralu\ht.c 8: パラメータ 'lpCmdLine' は一度も使用されない(関
数 WinMain )
警告 W8057 hopping-toralu\ht.c 8: パラメータ 'nCmdShow' は一度も使用されない(関
数 WinMain )
*** 4 errors in Compile ***

というエラーが出ました。
「DXライブラリ 宣言の構文エラー」で検索をかけてみると結構出てきました。
そこで確認した解決策は

・拡張子を.cppにする
・DXライブラリを再ダウンロード

…どちらも試しましたが、前者は

エラー E2141 hopping-toralu\DxDirectX.h 891: 宣言の構文エラー
警告 W8094 hopping-toralu\DxLib.h 94: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
警告 W8094 hopping-toralu\DxLib.h 95: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
警告 W8094 hopping-toralu\DxLib.h 96: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
エラー E2238 hopping-toralu\ht.c 3: 'hPrevInstance' の宣言が複数見つかった
エラー E2356 hopping-toralu\ht.c 4: 'WinMain' の再宣言で型が一致していない
エラー E2344 c:\borland\bcc55\Include\winbase.h 1267: 一つ前の 'WinMain' の定義
位置
警告 W8065 hopping-toralu\ht.c 6: プロトタイプ宣言のない関数 'DxLib_Init' の呼び
出し(関数 WinMain )
警告 W8070 hopping-toralu\ht.c 8: 関数は値を返すべき(関数 WinMain )
警告 W8057 hopping-toralu\ht.c 8: パラメータ 'hPrevInstance' は一度も使用されな
い(関数 WinMain )
警告 W8057 hopping-toralu\ht.c 8: パラメータ 'lpCmdLine' は一度も使用されない(関
数 WinMain )
警告 W8057 hopping-toralu\ht.c 8: パラメータ 'nCmdShow' は一度も使用されない(関
数 WinMain )
*** 4 errors in Compile ***

後者は初めに書いたエラーとまったく同じエラーが出ました。
分かるわけないと思いつつもDxDirectX.hを開いて、該当する行を見てみたのですが
namespace DxLibとしかありませんでした。

これはなぜでしょうか?
よろしくお願いします。

参考にしていただけると幸いです。

開発環境:

Borland C++
メモ帳

アバター
沖 滉均
記事: 237
登録日時: 14年前
住所: K県F市

Re: DXライブラリを使ったソースがコンパイルに通らない

#2

投稿記事 by 沖 滉均 » 14年前

使っているDXライブラリは「BorlandC++用」でしょうか?
間違って「VisualC++用」を使ってたりはしませんか?
There is no royal road to learning.
codeタグで指定できる言語
画像

アバター
bitter_fox
記事: 607
登録日時: 14年前
住所: 大阪府

Re: DXライブラリを使ったソースがコンパイルに通らない

#3

投稿記事 by bitter_fox » 14年前

窓枠 さんが書きました:

コード:

int WINAPI WinMain(HINSTANCE hPrevInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

    if(DxLib_Init() == -1) { return -1; }

}
エラー E2141 hopping-toralu\DxDirectX.h 891: 宣言の構文エラー

エラー E2238 hopping-toralu\ht.c 3: 'hPrevInstance' の宣言が複数見つかった
エラー E2356 hopping-toralu\ht.c 4: 'WinMain' の再宣言で型が一致していない
エラー E2344 c:\borland\bcc55\Include\winbase.h 1267: 一つ前の 'WinMain' の定義
位置
警告 W8070 hopping-toralu\ht.c 8: 関数は値を返すべき(関数 WinMain )
*** 4 errors in Compile ***
一個目のエラーは、Dxライブラリを使ってないんで、他の方の回答を待ちたいですが、
二個目以降のエラーは、WinMainの第一引数と第二引数共にhPrevInstanceとしているのが原因と思われます。
一般的にhPrevInstanceは第二引数として使用します。
第一引数には、hPrevInstanceにあわせて、hInstanceとでもしてください。

警告は、WinMain関数の戻り値はintですので関数の最後で
return 0;
としてください。

問題の根本的解決ではなく申し訳ないです。。


naohiro19
記事: 256
登録日時: 14年前
住所: 愛知県

Re: DXライブラリを使ったソースがコンパイルに通らない

#5

投稿記事 by naohiro19 » 14年前

コンパイラに1円も払わない窓プログラミング
を参照していただけませんでしょうか?
[hr]
追伸:
間違えて送信しちゃいましたorz
最後に編集したユーザー naohiro19 on 2010年12月02日(木) 11:36 [ 編集 1 回目 ]

窓枠

Re: DXライブラリを使ったソースがコンパイルに通らない

#6

投稿記事 by 窓枠 » 14年前

>>沖 滉均さん

何度も確認しましたが、確かにBCC用のDXライブラリです。

窓枠

Re: DXライブラリを使ったソースがコンパイルに通らない

#7

投稿記事 by 窓枠 » 14年前

>>二個目以降のエラーは、WinMainの第一引数と第二引数共に
>>hPrevInstanceとしているのが原因と思われます。

回答ありがとうございます。
試してみましたが、状況は変わりませんでした。

窓枠

Re: DXライブラリを使ったソースがコンパイルに通らない

#8

投稿記事 by 窓枠 » 14年前

>>naohiro19さん

リンク先を確認しました。
ですが、どうやらLinux用です。

アバター
toyo
記事: 35
登録日時: 14年前
住所: 宮崎県

Re: DXライブラリを使ったソースがコンパイルに通らない

#9

投稿記事 by toyo » 14年前

警告 W8094 hopping-toralu\DxLib.h
はVisualC++用のコメント部分なので無視していいです
気になるならDxLib.hの該当行をコメントにするなり削除するなりして使ってください
エラー E2141 hopping-toralu\DxDirectX.h 891: 宣言の構文エラー
は拡張子が.cppでないためです(namespaceはC++じゃないと使えません)
.cppに変更したとありますがエラーではファイル名がht.cのままで表示されてます
もう一度確認をお願いします

窓枠

Re: DXライブラリを使ったソースがコンパイルに通らない

#10

投稿記事 by 窓枠 » 14年前

>>toyoさん

回答ありがとうございます。
…が、まだエラーが発生している模様です。
以下がエラー内容です。

警告 W8022 hopping-toralu\DxDirectX.h 6831: 'D_CTransInPlaceFilter::Transform(D_
IMediaSample *)' が仮想関数 'D_CTransformFilter::Transform(D_IMediaSample *,D_IM
ediaSample *)' を隠蔽する
警告 W8094 hopping-toralu\DxLib.h 94: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
警告 W8094 hopping-toralu\DxLib.h 95: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
警告 W8094 hopping-toralu\DxLib.h 96: #pragma comment( <type> [,"string"] ) の使
用法に誤りがある
警告 W8070 hopping-toralu\ht.cpp 8: 関数は値を返すべき(関数 __stdcall WinMain(HI
NSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 hopping-toralu\ht.cpp 8: パラメータ 'hInstance' は一度も使用されない(
関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 hopping-toralu\ht.cpp 8: パラメータ 'hPrevInstance' は一度も使用され
ない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 hopping-toralu\ht.cpp 8: パラメータ 'lpCmdLine' は一度も使用されない(
関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 hopping-toralu\ht.cpp 8: パラメータ 'nCmdShow' は一度も使用されない(
関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: ファイル LIBTHEORA_STATIC.LIB が開けません

一番最後でエラーが出ています。

アバター
toyo
記事: 35
登録日時: 14年前
住所: 宮崎県

Re: DXライブラリを使ったソースがコンパイルに通らない

#11

投稿記事 by toyo » 14年前

c:\borland\bcc55\ilink32.cfg
にLIBTHEORA_STATIC.LIBまでのパス(つまりDxライブラリへのパス)は追加しましたか

mainの最後にreturn 0;を書いてWinMainの引数で変数を削除して型名だけにすると警告が少し減ります

閉鎖

“C言語何でも質問掲示板” へ戻る