ページ 1 / 1
VisualStudio2010でのDLL作成について
Posted: 2011年5月27日(金) 18:47
by ゴトウ
1>------ ビルド開始: プロジェクト: Project, 構成: Release Win32 ------
1>2011/05/27 18:36:39 にビルドを開始しました。
1>InitializeBuildStatus:
1> "Release\Project.unsuccessfulbuild" のタッチ タスクを実行しています。
1>ClCompile:
1> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
1> Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
1>
1> cl /
1>
1>CL : Command line warning D4024: unrecognized source file type '/', object file assumed
1> Microsoft (R) Incremental Linker Version 10.00.30319.01
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1> /out:.exe
1>LINK : warning LNK4001: オブジェクト ファイルが指定されていません。ライブラリを使用します。
1>LINK : warning LNK4068: /MACHINE の指定がありません。X86 を既定とします。
1>LINK : fatal error LNK1561: エントリー ポイントを定義しなければなりません。
1>
1>ビルドに失敗しました。
1>
1>経過時間 00:00:00.11
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
と表示されDLL作成ができません。
以前はできていたのですがいきなりです。
OSを再インストールして、
VisualStudio2010を入れなおして、
新規プロジェクトをつくりDLLを作成しようとしましたが同じエラーでした。
なぜでしょうか?
■環境
・Windows 7 64bit
・Visual Studio 2010 Professional
■ソースコード
#include <Windows.h>
void t_main()
{
MessageBox(0,L"hello world", 0, 0);
}
BOOL WINAPI DllMain (HINSTANCE hInst, DWORD dwReason, LPVOID lpReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hInst);
CreateThread(0,0,(LPTHREAD_START_ROUTINE)t_main, 0, 0, 0);
}
return TRUE;
}
[hr]
Re: VisualStudio2010でのDLL作成について
Posted: 2011年5月27日(金) 20:42
by maru
うーん、これだけの情報では何とも言ってみようがありませんね。
ただ、本当にVS2010なら
1> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
のversion部分は16.00.xxxxになっているはずです。
Re: VisualStudio2010でのDLL作成について
Posted: 2011年5月27日(金) 21:39
by ゴトウ
DreamSparkのVisualStudio2010を利用しています。
Microsoft Visual Studio 2010
Version 10.0.30319.1 RTMRel
Microsoft .NET Framework
Version 4.0.30319 RTMRel
インストールされているバージョン: Professional
Microsoft Visual Basic 2010 01018-532-2002102-70843
Microsoft Visual Basic 2010
Microsoft Visual C# 2010 01018-532-2002102-70843
Microsoft Visual C# 2010
Microsoft Visual C++ 2010 01018-532-2002102-70843
Microsoft Visual C++ 2010
Microsoft Visual Studio 2010 チーム エクスプローラー 01018-532-2002102-70843
Microsoft Visual Studio 2010 チーム エクスプローラー
Crystal Reports Templates for Microsoft Visual Studio 2010
Crystal Reports Templates for Microsoft Visual Studio 2010
[hr]
また、exeの作成でも同じエラーが出ることがわかりました。
プロジェクトの作成手順は
ファイル -> 新規作成 -> プロジェクト -> Visual C++ -> Win32 -> Win32 コンソールアプリケーション -> 完了
※ソースコードは変更せずにコンパイルしました。
1>------ ビルド開始: プロジェクト: 521521521521, 構成: Debug Win32 ------
1>2011/05/27 21:34:57 にビルドを開始しました。
1>PrepareForBuild:
1> ディレクトリ "D:\Backup\Programs\VC++\521521521521\Debug\" を作成しています。
1>InitializeBuildStatus:
1> "AlwaysCreate" が指定されたため "Debug\521521521521.unsuccessfulbuild" を作成しています。
1>ClCompile:
1> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
1> Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
1>
1> cl /
1>
1>CL : Command line warning D4024: unrecognized source file type '/', object file assumed
1> Microsoft (R) Incremental Linker Version 10.00.30319.01
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1> /out:.exe
1>LINK : warning LNK4001: オブジェクト ファイルが指定されていません。ライブラリを使用します。
1>LINK : warning LNK4068: /MACHINE の指定がありません。X86 を既定とします。
1>LINK : fatal error LNK1561: エントリー ポイントを定義しなければなりません。
1>
1>ビルドに失敗しました。
1>
1>経過時間 00:00:00.05
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
[hr]
また、C#のコンパイル、VBのコンパイルは共に問題ありませんでした。
Re: VisualStudio2010でのDLL作成について
Posted: 2011年5月28日(土) 02:54
by ISLe
ゴトウ さんが書きました:以前はできていたのですがいきなりです。
OSを再インストールして、
VisualStudio2010を入れなおして、
新規プロジェクトをつくりDLLを作成しようとしましたが同じエラーでした。
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
というのはVisual C++ 6のコンパイラです。
Visual StudioやVisual C++ではなくても何か開発ツールをインストールしたことはありませんか。
原因は分かっていないのですが、システムフォルダにコンパイラ(CL.EXE)を放り込む悪い奴がいるらしいです。
本来は悪さした奴を突き止めてアンインストールするのが筋ですが、
とりあえずコマンドプロンプトで
WHERE CL.EXE
とコマンドを入力して、システムフォルダ内にCL.EXEがあると表示されたならそれを削除してください。
Re: VisualStudio2010でのDLL作成について
Posted: 2011年5月28日(土) 09:28
by ゴトウ
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
というのはVisual C++ 6のコンパイラです。
Visual StudioやVisual C++ではなくても何か開発ツールをインストールしたことはありませんか。
ありません。
OSをクリーンインストールした直後にVisualStudio2010のみをインストールし、
コンパイルを試したところエラーに悩まされていました。
WHERE CL.exeコマンドを実行すると
情報: 与えられたパターンのファイルが見つかりませんでした。
とでました。
しかし、Everythingというファイルを検索するツールを利用しCL.EXEを探したところ
C:\Windows\SysWOW64\
このディレクトリにCL.EXEが存在したため削除したところうまくコンパイルができるようになりました。
なぜこのような現象が起きるか不明ですがとても助かりました。
ありがとうございます。