首先是我的简单设置:我有 2 个 VS2012 项目。现在我想在项目 A 中使用项目 B 中的类。我将项目 B 添加到 A 的项目依赖列表中,并在必要时导入了标题。(例如#include"..\src-pool\Coords.h";)。
到目前为止,一切都很好 - 没有编译器错误。但是当我尝试构建项目时,我得到了一些链接器错误:
Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall Coords::Coords(double,double)" (??0Coords@@QAE@NN@Z)" in Funktion ""public: void __thiscall TileDownloader::calculateBounds(double *,int)const " (?calculateBounds@TileDownloader@@QBEXPANH@Z)". C:\Users\username\documents\visual studio 2012\Projects\CPPHA\project\TileDownloader.obj
对不起,这是德文版的VS。“Verweis auf nicht aufgelöstes externes Symbol”的意思是:链接到未解析的外部符号。
有任何想法吗?=)
完成这个(这是我要导出并在其他项目中使用的类)
坐标.h
#pragma once
#include <iostream>
#ifdef EXPORT_MYCLASS
#define MYCLASSEXPORT __declspec(dllexport)
#else
#define MYCLASSEXPORT __declspec(dllimport)
#endif
class MYCLASSEXPORT Coords
{
public:
Coords(double lat, double lon);
~Coords(void);
double getLon() const;
void setLon(double val);
double getLat() const;
void setLat(double val);
void printInfos() const;
private:
double lat, lon;
};
但我收到警告“不一致的 dll 导出”和相同的错误。抱歉,我是 C++ 新手
我想像这样使用它
#include "..\src-pool\Coords.h"
class TileDownloader
{
public:
TileDownloader(void);
~TileDownloader(void);
void calculateBounds(double* array, int zoomLevel) const;
void downloadTiles() const;
private:
double maxLat, maxLon, minLat, minLon;
};