加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何从另一个C win32控制台应用程序调用C Win32 DLL

发布时间:2020-12-16 10:17:27 所属栏目:百科 来源:网络整理
导读:我最关心的是,我能用VC写一个C dll.现在,dll出现在Debug文件夹中. 如何在其他C控制台应用程序中使用我的DLL.如何添加引用或将DLL链接到应用程序. 另一点,在创建DLL时,VC向导为我提供了以下选项: 一个空DLL项目 一个简单的DLL项目 导出一些符号的DLL 现在根
我最关心的是,我能用VC写一个C dll.现在,dll出现在Debug文件夹中.

如何在其他C控制台应用程序中使用我的DLL.如何添加引用或将DLL链接到应用程序.

另一点,在创建DLL时,VC向导为我提供了以下选项:

>一个空DLL项目
>一个简单的DLL项目
>导出一些符号的DLL

现在根据CP的文章,我使用了第3个选项. (由于MFC应用程序使用了dll,因此无法跟进,有些人在这个时间点进展不多)

我是否需要始终选择第三种选择?另外两个选项意味着什么?

解决方法

不完全确定你的问题但是:

你使用它的选项并不重要,这只是向导为你做的事情;如果您使用第三个选项,则向导会在头文件中创建一个如下所示的位:

#ifdef TEST_EXPORTS
#define TEST_API __declspec(dllexport)
#else
#define TEST_API __declspec(dllimport)
#endif

这种方式的工作方式是在DLL项目中,TEST_EXPORTS在编译器选项中定义,因此TEST_API求值为dllexport,从而告诉链接器导出这些符号.如果在另一个项目中包含此标头,则将TEST_API定义为dllimport,它告诉编译器在DLL中的运行时链接到它.这种导出符号的#define方法被广泛使用且易于阅读.

为了在DLL中调用函数/类,您需要以下两种方式之一导出符号:
a)使用__declspec(dllexport)[这似乎在几乎所有情况下都是更方便的选项] OR
b)在项目中使用.DEF文件

还想提一下,您需要在解决方案中包含.exe文件的DLL项目或DLL编译生成的.lib.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读