24

I'm completely new to Visual Studio and I'm having some trouble getting a project started with Visual Studio 2008. I'm experimenting with MAPI, and I'm getting error messages like this when I go to build the project:

"unresolved external symbol _MAPIUninitialize@0 referenced in function _main"

I know I need to link to MAPI32.lib, but the guides I have found thus far have indicated going to the "Visual Studio settings link tab" and adding it there (which was - apparently - from an older version of Visual Studio). I can't find anything like that in the project properties linker or C/C++ sections of VS 2008.

Where do I need to tell Visual Studio to use that library?

Thanks

John Saunders
  • 160,644
  • 26
  • 247
  • 397
Chance
  • 988
  • 2
  • 13
  • 29

5 Answers5

42

It's under Project Properties / Configuration Properties / Linker / Input / Additional Dependencies.

The help tip at the bottom of the screen says "Specifies additional items add to the line line (ex: kernel32.lib)".

RichieHindle
  • 272,464
  • 47
  • 358
  • 399
  • 1
    Wow, M$ really buried this setting. You'd think they would make it a little easier. At first glance it seems like the Add References link would work, but no. This answer is very useful. Thanks! – Jim Fell Oct 27 '10 at 14:06
  • 10
    For anyone who also needs to know how to set the library path -- it's Project Properties / Configuration Proerties / Linker / General / Additional Library Directories – Tim Barrass Aug 02 '11 at 13:37
12

Project Properties->Linker->Input->Additional Dependencies

You can also use #pragma comment( lib, "mapi32" ) in one of your source files. As noted MSDN here is a similar library addition using the pragma technique MSDN - Creating a Basic Winsock Application

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}
MrDaniel
  • 583
  • 1
  • 7
  • 19
Paul
  • 13,042
  • 3
  • 41
  • 59
10

Three simple steps:

  1. Project Properties->Linker->General->Additional Library Directories choose the folder which contains your .lib file

2.Project Properties->Linker->Input->Additional Dependencies Just enter the name of your .lib files

3.Project Properties->C/C++->General->Additional Include Directories choose the folder where your .h files locate

mabeiyi
  • 357
  • 2
  • 5
  • 14
2

It is also possible to just drag'n'drop library file to project in Solution Explorer.

Virne
  • 1,205
  • 11
  • 11
1

Do not statically link to any MAPI dlls. You must always dynamically load the MAPI system - look at the MFCMAPI source code to see how it is done: http://mfcmapi.codeplex.com/

Dmitry Streblechenko
  • 62,942
  • 4
  • 53
  • 78