我试图从静态库+头文件中生成一个dll,以使其作为另一个python项目的插件。
(https://github.com/muggot/myphone3/tree/master/h323plus/plugins/audio/VoiceAgeG729/va_g729)
但是,我遇到了链接器错误,无法弄清它们背后的真正原因。
我在[1]中尝试了接受的答案,但是图书馆员没有工作(无法正确启动),所以我做不到。
这是我的dll代码,它将包装一个函数作为示例
Win32Project2.h
#ifdef WIN32PROJECT2_EXPORTS
#define WIN32PROJECT2_API __declspec(dllexport)
#else
#define WIN32PROJECT2_API __declspec(dllimport)
#endif
#include <C:\Users\user name\Desktop\CELP/va_g729.h>
#pragma comment(lib, "va_g729.lib")
WIN32PROJECT2_API void fnWin32Project2(void);
dllmain.cpp
#include "stdafx.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Win32Project2.cpp
#include "stdafx.h"
#include "Win32Project2.h"
#include <C:\Users\user name\Desktop\CELP\va_g729.h>
// This is an example of an exported function.
WIN32PROJECT2_API void fnWin32Project2(void)
{
return va_g729a_init_encoder(); // A function inside the .lib
}
我将.h目录添加到项目的属性-> C / C ++-> general-> Aditional include目录中 并将lib路径添加到链接器->通用->其他库目录中 最后,将.lib本身添加到链接器->输入->其他依赖项
但是,出现以下链接器错误: 错误LNK1120:1个未解决的外部 Error1错误LNK2001:无法解析的外部符号“ void __cdecl va_g729a_init_encoder(void)”(?va_g729a_init_encoder @@ YAXXZ)
我知道链接器找不到该函数,但是为什么呢?我搞砸了吗?