<p>This is a very basic problem that's frustrating me at the moment. Let's say within a single solution, I have two projects. Let's call the first project SimpleMath. It has one header file "Add.h" which has </p>

<pre><code>int add(int i, int j)
</code></pre>

<p>and the implementation "Add.cpp" which has</p>

<pre><code>int add(int i, int j) {
  return i+j;
}
</code></pre>

<p>Now let's say in a second project I want to use the add function. However, this code:</p>

<blockquote>
  <p><strong>#include "..\SimpleMath\Add.h"</strong></p>
</blockquote>

<pre><code>int main() {

    add(1, 2);

}
</code></pre>

<p>results in "unresolved external symbol". How do I get the second program to "know" about the actual implementation in the .cpp file. As a side note all code is fictional this is not how I actually program.</p>

You either have to make Add.cpp part of a library and include it in both projects. or you have to add Add.cpp to your second project too.
Edit: to make SimpleMath a library go into the project settings on General and change the Configuration Type to Static Lib.
Then go into your solution settings, click on Project Dependencies, then select your second project in the drop down list, and put a check mark next to SimpleMath. That will automatically link SimpleMath to your second project, and will also make sure that any changes to SimpleMath will be rebuilt when you rebuild your second project.