c++程序不识别库

Posted

技术标签:

【中文标题】c++程序不识别库【英文标题】:c++ program not recognising libraries 【发布时间】:2012-11-19 14:37:39 【问题描述】:

当我构建此解决方案时,#include 库带有红色下划线,我收到以下错误:

错误 1 ​​错误 MSB8008:指定的平台工具集 (v110) 未安装或无效。请确保选择了受支持的 PlatformToolset 值。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets 518 6 G00290342BrianVarley.c

我们将不胜感激。

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>
#include <windows.h>
#include <ctime>
#include <string.h>

using namespace std;

#define MAX 80

//declaring functions
int showMenu();     
void generatePass();    
void validatePass();
int countLetters(char *,int *,int *,int *,int *);

main()


    int iChoice;

    // have menu appear, user makes decision, do work, reshow menu
    // do this until user enters 5

    do
        
        iChoice = showMenu();    

    while(iChoice != 3);

    printf("\n\n\n");
    system("pause");


//end of main

//Methods placed here:

//showMenu method calls program menu,either 1.generate password,2.enter password and validate. or 3.exit(close program)
int showMenu()

    int iChoice;

    system("cls");
    printf("\n\n\t\tWelcome to Password Generator and Validator\n\n");
    printf("\n\t\t1. Generate");
    printf("\n\t\t2. Validate");
    printf("\n\t\t3. Exit");

    printf("\n\n\t\tEnter your menu choice: ");
    fflush(stdin);
    scanf("%d", &iChoice);

    // user enters one of 3 values
    // generate,validate or exit program


    switch(iChoice)
    
        case 1:     // generate
        
            generatePass();
            string random_str = generatePass(15);
            printf( "\n\n\t\tYour new password is : ","%d",random_str);

            break;
        
        case 2:     // validate
        
            validatePass();


            break;
        
        case 3:     // exit
        
            printf("\n\nProgram exiting!...");
            system.exit(0);
            break;
        
        default:
        
            break;
        
    //end of switch


    return(iChoice);
 //end of showMenu


//method to generate a random password for user following password guidelines.  
string generatePass(int length)

    printf("\n\n\t\tGenerate Password selected ");
    printf("\n\n\t\tPassword creation in progress... ");

    srand(time(0));
    string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!£$%^&*()_+=#@;";
    int pos;
    while(str.size() != length) 
    pos = ((rand() % (str.size() - 1)));
    str.erase (pos, 1);
    
    return str;
//end of generatePass method.








//method to validate a user generated password following password guidelines.
validatePass()

    char password[MAX+1];
    int iChar,iUpper,iLower,iSymbol,iNumber;

    //shows user password guidelines
    printf("\n\n\t\tPassword rules: ");
    printf("\n\n\t\t 1. Passwords must be at least 9 characters long and less than 15 characters. ");
    printf("\n\n\t\t 2. Passwords must have at least 2 numbers in them.");
    printf("\n\n\t\t 3. Passwords must have at least 2 uppercase letters and 2 lowercase letters in them.");
    printf("\n\n\t\t 4. Passwords must have at least 1 symbol in them (eg ?, $, £, %).");
    printf("\n\n\t\t 5. Passwords may not have small, common words in them eg hat, pow or ate.");

    //gets user password input
    printf("\n\n\t\tEnter your password following password rules: ");
    gets(password);


    iChar = countLetters(inString,&iUpper,&iLower,&iSymbol,&iNumber,&iTotal);

    if(iUpper < 2)
    
        printf("Not enough uppercase letters!!!\n");


    
    else if(iLower < 2)
    
        printf("Not enough lowercase letters!!!\n");


    
    else if(iSymbol < 1)
    
        printf("Not enough symbols!!!\n");


    
    else if(iNumber < 2)
    
        printf("Not enough numbers!!!\n");


    
    else if(iTotal < 9 && iTotal > 15)
    
        printf("Not enough characters!!!\n");


    
    printf("\n\n\n Your new password is verified " + password);


    printf("\n\n\n");
    system("pause");



//end validatePass method

int countLetters(char * Password,int * Upper,int * Lower,int * Symbol,int * Number)

    int iTotal = 0,iC,tU = 0,tL = 0,tS = 0,tN = 0;


    //strlen- function that returns length
    for (iC = 0;iC < strlen(Password);iC++)
    

        printf("%d",Password[iC]);
        //uppercase letters are in the range 65 - 90
        //lowercase letters are in the range 97 - 122

        //check upper case

        if((Password[iC] < 64) && (Password[iC] < 91))
        
            tU++;
            iTotal++;

        
        else if((Password[iC] > 96) && (Password[iC] < 123))
        
            tL++;
            iTotal++;

        
        else if((Password[iC] > 32) && (Password[iC] < 48))
        
            tS++;
            iTotal++;

        
        else if((Password[iC] > 47) && (Password[iC] < 58))
        
            tN++;
            iTotal++;

        

        *Upper = tU;/*set value at memory address = tU,passing by reference saves memory used.*/
        *Lower = tL;
        *Symbol = tS;
        *Number = tN;

    //end for statement


    return (iTotal);
//end of countLetters

【问题讨论】:

CC++ 的混合不好。 我重命名了它,但我得到一个错误工具集 v110 not installed 【参考方案1】:

感谢您的帮助。我发现这是我使用 vs2012 创建并转移到具有 v100 工具集的 vs2010 的项目的问题?所以只需复制代码并创建一个新的 cpp 项目在 vs2010 中。

【讨论】:

以上是关于c++程序不识别库的主要内容,如果未能解决你的问题,请参考以下文章

将 C++ 库链接到具有非 C++ 主函数的程序

C++:如何构建我自己的实用程序库?

c++程序中,无法识别中文路径怎么办

C++ 标准库如何链接到我的应用程序?

进行库调用时 C++ 程序死机

为啥我的 DirectX 程序无法识别我已经释放了转义键? (C++)