title: Possible Class/Destructor setup issue, receiving error message 'unresolved external symbol'
body: <p><strong>EDIT:</strong> I believe my issue is because I'm calling my FacePoint class from an .exe project, and FacePoint is actually located in a .dll project, both within the same solution. Any idea to combat this?</p>
  
  <hr>
  
  <p>I have a class called FacePoint which gets and sets X and Y values of a face feature.</p>
  
  <p>This is FacePoint.h:</p>
  
  <pre><code> #pragma once
  class FacePoint
  {
  public:
      FacePoint(void);
      FacePoint(int X, int Y);
  
      void FacePoint::SetX(int X);
      void FacePoint::SetY(int Y);
      void FacePoint::SetXY(int X, int Y);
  
      int FacePoint::GetX();
      int FacePoint::GetY();
  
      ~FacePoint(void);
  
   private:
      int coordX;
      int coordY;
  };
  </code></pre>
  
  <p>...and FacePoint.cpp:</p>
  
  <pre><code>#include "StdAfx.h"
  #include "FacePoint.h"
  
  FacePoint::FacePoint(void)
  {
      coordX = 0;
      coordY = 0;
  }
  
  FacePoint::FacePoint(int X, int Y)
  {
      coordX = X;
      coordY = Y;
  }
  
  void FacePoint::SetX(int X){ coordX = X; }
  
  void FacePoint::SetY(int Y){ coordY = Y; }
  
  void FacePoint::SetXY(int X, int Y)
  {
      coordX = X;
      coordY = Y;
  }
  
  int FacePoint::GetX(){ return coordX; }
  
  int FacePoint::GetY(){ return coordY; }
  
  FacePoint::~FacePoint(){}
  </code></pre>
  
  <p>This seems OK to me, however when I try to implement a vector of FacePoint objects, as follows:</p>
  
  <pre><code>    std::vector&lt;FacePoint&gt; point;
      result = GetFeaturePoints(pHandle, &amp;point);
      int x = 0;
      int y = 0;
      for(int p = 0; p &lt; point.size(); p++)
      {
          x = point[p].GetX();
          y = point[p].GetY();
      }
  </code></pre>
  
  <p>I get the following compile-time errors:</p>
  
  <blockquote>
    <p>Error 37  error LNK1120: 3 unresolved externals</p>
    
    <p>Error 36  error LNK2001: unresolved external symbol "public: __thiscall
    FacePoint::~FacePoint(void)" (??1FacePoint@@QAE@XZ)</p>
    
    <p>Error 35  error LNK2001: unresolved external symbol "public: int
    __thiscall FacePoint::GetX(void)" (?GetX@FacePoint@@QAEHXZ)</p>
    
    <p>Error 34  error LNK2001: unresolved external symbol "public: int
    __thiscall FacePoint::GetY(void)" (?GetY@FacePoint@@QAEHXZ)</p>
  </blockquote>
  
  <p>I'm not sure why this is happening, but from the error messages, I suspect it's something to do with my destructor?...</p>
  
  <p>I searched around and most of these issues were around missing a constructor/destructor definition. To my knowledge, my constructor seems fine, and the error message seems to hint at the destructor. The only thing I can think of is I'm missing a desctructor which destroys int X, int Y, but I didn't think primitives needed that?...</p>
  
  <p>Any help is appreciated. Thank you!!</p>
  
  <hr>
  
  <p><strong>EDIT:</strong> So I forgot to #include "FacePoint.h" in my main (where I am creating the vector of FacePoint). I added that in, but am receiving this compile-time error message:</p>
  
  <blockquote>
    <p>Error 4   error LNK2019: unresolved external symbol "public: __thiscall FacePoint::~FacePoint(void)" (??1FacePoint@@QAE@XZ) referenced in function "public: void * __thiscall FacePoint::`scalar deleting destructor'(unsigned int)" (??_GFacePoint@@QAEPAXI@Z)</p>
  </blockquote>
  
  <p>Any idea, guys? Thanks!</p>