24
votes

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

5

5 Answers

42
votes

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)".

12
votes

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;
}
10
votes

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

2
votes

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

1
votes

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/