将c DLL用于c ++项目

时间:2016-11-04 14:35:17

标签: c++ c visual-studio dll static-libraries

所以我有一个问题。 我读了很多东西,但似乎没有什么对我有用。

我有这个C库,我用文件制作项目:

//send.h
#ifndef SEND_H
#define SEND_H

#ifdef __cplusplus
extern "C" {
#endif
        static int Send_Sample(void);


#ifdef __cplusplus
}
#endif

#endif /* SEND_H */

我有

//send.c
#include "thatLibrary.h"
static int Send_Sample(void)
{ return 0; }

所以我创建了一个项目作为空DLL,然后我建立它,它的确定。 但是当我做了另一个项目,并在其中引用了这个项目时,我做了

#include "send.h"

这包括工作,他看到.h文件,但是当我构建另一个项目时,它说:

Error   C2129   static function 'int Send_Sample(void)' declared but not defined    AzureEventHubClient c:\users\v-vlvesi\documents\github\azureeventhubclibrary\azureeventhubclient\source.cpp 9   

有谁知道如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

'static'关键字实际上阻止了从DLL导出函数。您还必须使用 dllimport dllexport

您可以参考上一个答案,了解如何检测代码:Exporting functions from a DLL with dllexport