gpt4 book ai didi

使用其他 dll/lib 中定义的函数编译 dll

转载 作者:行者123 更新时间:2023-11-30 19:34:09 25 4
gpt4 key购买 nike

我正在尝试编写一个C dll文件,其中包括一些从其他dll派生的函数,以及我自己创建的函数。我无法查看其他 dll 中的函数是如何定义的,因为它们不是开源代码。在我的简单示例中,从其他 dll 派生的函数是 getlibraryversion(),我定义的函数是 PowerOf2。

然后,我想在源代码中编译它以获得一个新的dll,它包装了从另一个dll派生的函数。尽管我尝试了很多小时来解决该错误,但仍然收到此错误。

函数 _getlibraryversion MyDll c:\Users\G11\documents\visual studio 2017\Projects\MyDll\MyDll\MyDll.obj 1 中引用的错误 LNK2019 无法解析的外部符号 _printf

此错误通常意味着未正确引用该库。所以我尝试:在属性下,链接器>输入>附加依赖项,我插入了libC/C++>常规>其他包含目录>我包含了包含此库的文件夹。

问题:我正在做的事情被认为是不可能的吗?否则,还有哪些替代方法?

此链接可以找到如何创建和调用C dll:http://www.zealfortechnology.com/2013/08/create-c-program-dynamic-link-library-dll-visual-studio-2012-implicit.html

头文件:

#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
#define PI 3.1415
MYDLL_API double PowerOf2(double UserNumber);
MYDLL_API void getlibraryversion();

源代码:

#include "MYDLL.h"
double PowerOf2(double UserNumber){

return UserNumber * UserNumber;}



void getlibraryversion() {
char LIB_Version[8];

TH260_GetLibraryVersion(LIB_Version);
printf("\nLibrary version is %s\n", LIB_Version);}

最佳答案

首先,使用您自己的函数编译第一个dll,您也可以通过动态链接从其他dll导入函数。另一点是,必须始终在客户端和库项目目录中包含另一个 dll......以前我总是使用静态链接库,而不是 dll。

关于使用其他 dll/lib 中定义的函数编译 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44251635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com