VS中的C ++:错误LNK 2019未解决的符号错误

时间:2015-03-13 14:16:49

标签: regex visual-studio

所以我正在编写一个带登录的菜单。 登录阶段检查用户和密码是否与数据库中的用户和密码匹配(phpMyAdmin)。

但是我的功能出错了,我不明白为什么。

这是我的主要(cpp):

// Kassasysteem.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <tchar.h>
#include "KlassenVerzameling.h"


using namespace std; 

int inloggen();
void menu(int userID);


int _tmain(int argc, _TCHAR* argv[])
{
UserDAO admin;

#ifdef User_Offline
    admin.Init();
#endif
    UserDAO gebruikers;
    int userID = 0;
    bool doorgaan = true;

    while (doorgaan)
    {
        userID = inloggen();

        cout << "Welkom " << gebruikers.getUser(userID)->getGebr_naam() << "!" << endl << endl;
    }

    return 0;
}

int inloggen(){
    UserDAO users;

#ifdef User_Offline
        users.Init();
#endif

        string naam, wachtwoord;

        cout << "Gebruikersnaam (leeg om af te sluiten)? ";
        getline(cin, naam);

        if (naam.empty())
        {
            return -1;
        }
        else {
            wachtwoord = hiddenline("Wachtwoord? ");
            cout << "Verificatie gebruiker...";
            User* gebruiker = users.getUserByName(naam);

            if (gebruiker == 0)
            {
                return -2;
            }
            else {
                if (gebruiker->getWachtwoord() == wachtwoord)
                {
                    return gebruiker->getUserID();
                }
                else {
                    return -2;
                }
            }
        }

#ifdef User_Offline
        users.Dispose();
#endif

} 

我声明我的函数的头文件(我用于密码检查):

#ifndef SPECIALEINVOER_H_INCLUDED
#define SPECIALEINVOER_H_INCLUDED


string hiddenline(string prompt, char masker = '*');
void setXY(int, int);
int wherex();
int wherey();

#endif

编写了我的密码检查过程功能的.cpp文件:

#include "stdafx.h"
#include "specialeInvoer.h"

HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);

string hiddenline(string prompt, char masker)
{
    string wachtwoord;
    cout << prompt;
    int x = wherex();
    int y = wherey();
    char c = _getch();

    while (c != 13) //13 = ENTER
    {
        if (c == 8) //backspace
        {
            if (!wachtwoord.empty())
            {
                wachtwoord.pop_back();
                setXY(--x, y);
                cout << " ";
                setXY(x, y);
            }
        }
        else {
            wachtwoord.push_back(c);
            cout << masker;
            x++;
        }
        c = _getch();
    }
    cout << endl;
    return wachtwoord;
}

我没有语法错误只有这些错误:(对于函数whereex,wherey和setXY)。

Error   5   error LNK2019: unresolved external symbol "int __cdecl wherex(void)" (?wherex@@YAHXZ) referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl hiddenline(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,char)" (?hiddenline@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@D@Z)    

一些帮助会很棒,我已经潜伏了很长一段时间,但大多数情况下我看到了奇怪的答案,并没有真正帮助我的答案。

THX

1 个答案:

答案 0 :(得分:1)

如评论所述:

您的功能wherexwhereysetXY未在您的代码中实现。 您已实施hiddenline,为什么不实施其他?

您的[{1}}函数应该是setXY(int, int)吗?