解決済み私の「WorkoutGeneratorMain.cpp」は、IDEによってC++ヘッダーとして分類されました。なぜそうなったのかわかりませんが、修正しました。これで、他のすべてのバグに対処できるようになりました。
皆さんありがとう!
================================================== =
Visual Studio 2010 Professionalでプログラムをコンパイルすると、次のエラーが発生します。
------ビルド開始:プロジェクト:WorkoutGenerator、構成:DebugWin32------
ビルド開始2012年8月15日12:19:18PM。
InitializeBuildStatus:
「Debug\WorkoutGenerator.unsuccessfulbuild」をタッチします。
ClCompile:
LiftClass.cpp
ManifestResourceCompile:
すべての出力は最新です。
MSVCRTD.lib(crtexe.obj):エラーLNK2019:未解決の外部シンボルメインが機能で参照されています_ _tmainCRTStartup
C:\ Users \ Shanalex \ Documents \ Programming \ C ++ Programming \ WorkoutGenerator \ WorkoutGenerator \ Debug \ WorkoutGenerator.exe:致命的なエラーLNK1120 :1つの未解決の外観
私の検索で、これを修正するためのいくつかのガイドを見つけました。ただし、ほとんどすべての場合、ファイルがコンソール設定に設定されたWindowsアプリケーションであるか、またはその逆であることが示唆されています。私のプログラムはコンソールアプリケーションであり、すべての設定がwin32コンソールアプリケーションに対して正しいように見えます。リンクエラーがある場合もありますが、他の人が抱えているプロジェクト設定の問題はないようです。
私はC++とVS2010のマルチパートプログラムにかなり慣れていません。簡単に基本的な間違いを犯す可能性がありますが、自分のコードをさまざまなチュートリアルや本のコードと比較しても、それを見つけることができませんでした。
次のように、3つのコードファイルがあります。
LiftClass.h
//Lift Classes
//Defines the Lift Class
#ifndef LIFTCLASSHEADER_H_INCLUDED
#define LIFTCLASSHEADER_H_INCLUDED
#include <iostream>
#include <string>
#include <vector>
#include <random>
#include <ctime>
using namespace std;
class Lift
{
public:
string LName;
string LType;
string LBody;
vector<double> LLoadScale;
Lift(string Name, string Type, string Body,
double Pawn, double Bishop, double Knight, double Rook, double Royal);
};
Lift::Lift(string Name, string Type, string Body,
double Pawn, double Bishop, double Knight, double Rook, double Royal)
{
LName = Name,
LType = Type,
LBody = Body,
LLoadScale.push_back(Pawn),
LLoadScale.push_back(Bishop),
LLoadScale.push_back(Knight),
LLoadScale.push_back(Rook),
LLoadScale.push_back(Royal);
}
#endif
次に、liftクラスの.cpp実装と、それらをランダム化するための関数があります。
LiftClass.cpp
//Exercise Randomizer using Lift Class
//Initializes Lifts for use in Workout Generator
//Version 2.0 will reference Database
#include "LiftClass.h"
Lift exerciseRandomizer() //Define database of exercise & randomly select one
{
vector<Lift> LiftDatabase;
Lift Clean("Clean", "Olympic", "Full", .33, .66, 1, 1.33, 1.66);
Lift Bench("Bench Press", "Heavy", "Upper", .33, .66, 1, 1.5, 2);
LiftDatabase.push_back(Clean);
LiftDatabase.push_back(Bench);
srand(static_cast<unsigned int>(time(0))); //Seed random number
unsigned randomNumber = rand(); //Generate Random Number
//Get random between 1 and total lift count
unsigned randomSelector = (randomNumber % LiftDatabase.size());
return LiftDatabase[randomSelector];
}
そして最後に、メイン関数WorkoutGeneratorMain.cppがあります
WorkoutGeneratorMain.cpp
//Workout Generator
//Generates workouts based on goal and fitness level
#include "LiftClass.h"
int main()
{
exerciseRandomizer();
Lift LiftA = exerciseRandomizer();
cout << "\n\nYour first lift is: " << LiftA.LName << "\n\n Its lift type is: " << LiftA.LType << endl;
cout << "\n\nGood Luck!" << endl;
system("pause");
return 0;
}
どんな提案でも大歓迎です。
ありがとう、
-アレックス