链接错误2019用于编程分配

时间:2012-07-02 19:08:50

标签: c++ linker-errors lnk2019

1>Main.obj : error LNK2019: unresolved external symbol "void __cdecl createVideoList(class                          std::basic_ifstream<char,struct std::char_traits<char> > &,class Video &)" (?createVideoList@@YAXAAV?$basic_ifstream@DU?$char_traits@D@std@@@std@@AAVVideo@@@Z) referenced in function _main
1>c:\users\******\documents\visual studio 2010\Projects\Programming Assignment 4\Debug\Programming Assignment 4.exe : fatal error LNK1120: 1 unresolved externals

我正在编写一个编程作业,我在尝试编译时遇到了这个链接错误2019。它引用了createVideoList,这些是与我相关的代码行:

#include <iostream>
#include <fstream>
#include <string>
#include "Video.h"
using namespace std;

void createVideoList(ifstream& infile, Video videoArray);

int main()
{
...
createVideoList(inputfile, videoArray[50]);
}

void createVideoList(ifstream& ifile, Video videoArray[50])
{
string title;
string star1;
string star2;
string producer;
string director;
string productionCo;
int inStock;
int count = 0;
Video newVideo;
getline(ifile, title);
while (ifile)
{
    getline(ifile, star1);
    getline(ifile, star2);
    getline(ifile, producer);
    getline(ifile, director);
    getline(ifile, productionCo);
    ifile >> inStock;
    newVideo.setVideoInfo(title, star1, star2, producer,
        director, productionCo, inStock);
    videoArray[count] = newVideo;
    getline(ifile, title);
}
}

我不确定我需要在这里发布什么代码来帮助你们,因为我甚至不确定错误在哪里说的是什么。提前谢谢!

1 个答案:

答案 0 :(得分:5)

void createVideoList(ifstream& infile, Video& videoArray);

应该是

void createVideoList(ifstream& infile, Video* videoArray);

这两个是不同的声明。在第一个参数中,第二个参数是对Video变量的引用,第二个参数是指针,它可以是一个数组,就像你的情况一样。

此外,如果您想将数组作为参数传递给函数,您应该这样调用它:

createVideoList(inputfile, videoArray[]);

createVideoList(inputfile, videoArray);

因为当你这样做时:

createVideoList(inputfile, videoArray[50]);

你只是传递数组的第50个元素。