dllexport, vector<MyClass> -> C2923
Bonjour,
J'écris une petite bibliothèque j'ai 2 classes dedans :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #pragma once
#include <string>
#include <vector>
#include "Polygon.h"
class __declspec(dllexport) Layer_part
{
private:
std::string _filter;
int _order;
std::vector<Polygon> _vectPoly;
public:
Layer_part(void);
Layer_part(std::string expr_filter, int order);
~Layer_part(void);
void addPolygon(int fill_color, std::string column_filter, int order);
}; |
et
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #pragma once
#include <string>
class __declspec(dllexport) Polygon
{
private:
int _color;
std::string _filter;
int _order;
public:
Polygon();
Polygon(int fill_color, std::string column_filter, int order);
~Polygon(void);
}; |
à la compilation, la déclaration du vecteur donne les erreurs suivantes :
- error C2923: 'std::vector'*: 'Polygon' n'est pas un argument de type modèle valide pour le paramètre '_Ty'
- warning C4251: 'Layer_part::_vectPoly'*: class 'std::vector<_Ty>' nécessite une interface DLL pour être utilisé(e) par les clients de class 'Layer_part'
Je ne comprend pas :(