Я не могу понять, где ошибка. Я создаю DLL, а затем использую его в консольной программе на С++ (Windows 7, VS2008). Но я получаю LNK2019 unresolved external symbol
при попытке использовать DLL-функции.
Сначала экспортируем:
#ifndef __MyFuncWin32Header_h
#define __MyFuncWin32Header_h
#ifdef MyFuncLib_EXPORTS
# define MyFuncLib_EXPORT __declspec(dllexport)
# else
# define MyFuncLib_EXPORT __declspec(dllimport)
# endif
#endif
Это один заголовочный файл, который я затем использую в:
#ifndef __cfd_MyFuncLibInterface_h__
#define __cfd_MyFuncLibInterface_h__
#include "MyFuncWin32Header.h"
#include ... //some other imports here
class MyFuncLib_EXPORT MyFuncLibInterface {
public:
MyFuncLibInterface();
~MyFuncLibInterface();
void myFunc(std::string param);
};
#endif
Затем в консольной программе есть dllimport, в котором есть DLL, включенная в каталоги Linker- > General- > Additional Library:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
__declspec( dllimport ) void myFunc(std::string param);
int main(int argc, const char* argv[])
{
std::string inputPar = "bla";
myFunc(inputPar); //this line produces the linker error
}
Я не могу понять, что здесь происходит; это должно быть что-то действительно простое и фундаментальное.