2014-02-08 43 views
1

我在这里搞砸了什么?代码中没有硬编码值,这就是为什么我的所有提示都是常量。我们还必须调用用户定义的函数来验证输入。未定义的引用WinMain,[错误] ID返回1退出状态

即时得到当我编译下面的错误 - 未定义参考WinMain中,[错误]标识返回我用开发的C++作为一个IDE 1个退出状态

#include <iostream> //for I/O 
#include <iomanip> //for formatting output 

using namespace std; 


const string PROGRAM_DESCRIPTION = "Program will calculate the amount " 
"accumulated every month you save, \nuntil you reach your goal. "; 
const string ENTER_DOLLAR_AMOUNT_MONTHLY = "Enter the dollar amount to be " 
"saved each month: "; 




int main() 
{ 
    double dollarSavedPerMonth; 


    //displays program description 
    cout << PROGRAM_DESCRIPTION << endl << endl; 

    //Prompts user to enter dollar amount to be saved monthly, will validate 
    //input by calling VerifyDollar 
    dollarSavedPerMonth = VerifyDollar(ENTER_DOLLAR_AMOUNT_MONTHLY); 
    cout << endl; 



    return 0; 
} 




double VerifyDollar (string Prompt) 
{ 
    const string INVALID_DOLLAR_AMOUNT = "Invalid amount, re-enter monthly " 
    "savings amount."; 
    double dollarSaved; 

    cout << Prompt; 
    cin >> dollarSaved; 

    while (dollarSaved < 5 || dollarSaved > 5000) 
    { 
      cout << INVALID_DOLLAR_AMOUNT; 
      cout << endl; 
      cout << Prompt; 
      cin >> dollarSaved; 
    } 
    return dollarSaved; 
} 
+2

注意:当您使用'std :: string'时,包含''标头。在任何情况下,这都不应该进入链接部分,因为在声明它之前使用'VerifyDollar',所以如何解决链接器错误超出了我的范围。 – chris

+0

您使用的是多目标IDE吗?我猜测项目设置是错误的。 – jerry

+0

添加了原型,因为函数定义在主要 – Jessica

回答

2

你做的确缺乏的WinMain( )可以在该代码中的任

如果内存为我服务,WinMain()是Win32 GUI应用程序的入口点。我假设你的IDE要求你提供某种“项目类型”,并且你要求的是Windows应用程序而不是控制台。

根据该假设,您的项目中的某些内容会被配置为调用您未定义的WinMain(),因此链接器错误。

+0

之后,当我能够选择一个项目时,我得到一堆选项...基本(Windows应用程序,控制台应用程序,静态库,dll,空项目)多媒体(直接3D,打开GL)Win 32(文件编辑器,mdi编辑器,动画例子)控制台(hello world,输入循环,中奖,打开MP)我一直选择hello world,我必须刚选好别的东西,复制代码并重新选择它的工作原理 – Jessica

+0

即使使用Windows子系统,您也不需要“WinMain”(事实上,我没有任何时间就可以过得很好)。请参阅http://stackoverflow.com/questions/5259714/undefined-reference-to-winmain16 – chris

相关问题