此部分是转别人博客的内容
http://www.cnblogs.com/tiangaipain/p/3712500.html
首先,我们打开vs2013,依此点击文件-->新建-->项目-->win32控制台应用程序,起名myDll,确定,下一步,应用程序类型选择dll,默认点击完成(空项目和导出符号我们不选择),个人理解dll文件的书写比较类似于C++中的头文件,从左侧的解决方案中可以看见源文件中包括dllmain.cpp myDll.cpp 和stdafx.cpp三项,这里的dllmain .cpp 类似用C中的main函数,但是我的们的代码并不是在这个dllmain函数,他相当于一个入口和出口,当函数执行时首先进入这个dllmain函数中然后,执行完其他函数后再今天这个dllmain函数,我们需要自己定义的函数应该写在myDll.cpp中,如果dll中含有其他的头文件的话,需要在stdafx.h中进行声明。我这里写一个很简单的加和函数Add(int x ,int y);
// myDll.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
_declspec (dllexport) int Add(int x, int y)
{
return (x+y);
}
写完代码后,我们要查看这个dll是不是正确,在调试的左边有一个生成,点击生成,选择第一个生成解决方案,如果代码正确后就回显示生成成功,然后查看文件的地址中的debug你会发现生成了myDll.dll和myDll.lib,则说明我们dll是成功的。
调用
现在我们看看怎么调用写好的dll
同样我们需要写一个简单的测试函数,VS中文件--》新建--》项目--》win32控制台应用程序,起名为test_myDll确定,下一步,控制台应用程序,选择空项目。完成,这里我们用一个c语言程序进行调用,点击源文件新建一个cpp代码如下
#include <stdio.h>
#pragma comment(lib, "myDll.lib")//调用dll文件时候必须用到的
int Add(int x, int y); //对刚才写好的Add函数进行声明
//主函数
int main()
{
printf("%d\n",Add(4,5));
return 0;
}
写好代码后选择调试左边的生成,生成解决方案,输出框中会提示无法打开myDll.lib,这是因为我们没有把写好Dll文件拷贝到这个程序的debug中,就会出现路径不明。这样我们在吧myDll拷贝到测试函数的debug中,拷贝完成后,再次生成解决方案,这样依然无法打开myDll.lib,这是因为我们拷贝了但是没有声明,右键左边生成方案下面的test_myDll,点击最下面的属性,选择vc++目录,找出你的测试函数的debug目录,拷贝到库函数的最前面,E:\code\VS\dll\test_myDll\Debug;不过记着要带分好,。完成后再次生成 解决方案,现在就会成功,然后选择调试,点击开始执行(不调试)就会出现我们Add(4,5)的结果 9 。
=================================================================================
但是按照上述步骤操作完之后, 在运行test_myDll的cpp文件的main函数时还是报:unable to start program F://xxx.dll,从而无法运行。
需要在vs2013里配置solution的startup project为test_myDll才行
http://stackoverflow.com/questions/12119333/visual-studio-2010-unable-to-start-program-dll
分享到:
相关推荐
"VS2010以运行加载方式调用DLL"是一个关于如何在Visual Studio 2010环境下,通过运行时动态加载的方式调用DLL文件的主题。这种方法与静态链接相反,静态链接是在编译时将DLL的功能合并到可执行文件中,而动态加载则...
通过以上步骤,不仅可以在LabVIEW中创建DLL文件,还能通过两种不同的方法有效地调用它们,从而极大地扩展了LabVIEW的功能性和灵活性。这对于那些希望利用DLL的强大功能来增强自己LabVIEW应用的开发者来说非常重要。
本主题聚焦于如何使用Visual Studio 2013(VS2013)来创建一个DLL,以便第三方应用程序能够方便地调用其中的功能。VS2013提供了强大的开发环境和工具,使得这个过程变得相对直观和高效。 首先,我们需要了解什么是...
在VS2013中,我们可以通过创建一个新的项目类型——动态库(DLL)来生成DLL文件。 步骤1:创建DLL项目 打开VS2013,选择“文件”->“新建”->“项目”,在模板中选择“Visual C++”->“Win32”,然后在项目类型中...
压缩包中的`cuseddll`可能是创建的DLL文件的示例,而`createdll`可能包含创建DLL的源代码或详细步骤。在实际操作中,你需要根据这些文件来理解DLL的创建和使用过程。 在企业级开发中,创建DLL有助于提高代码的组织...
DLL文件包含了一组函数和数据,这些函数可以在运行时被其他程序动态链接。这样做的好处在于,多个程序可以共享同一份代码,减少了内存占用,并且更新DLL不会影响到已经依赖它的应用程序。 创建DLL的步骤如下: 1. ...
总结来说,C#创建和调用Dll文件涉及创建类库项目、编写公共方法、设置输出类型为类库、编译项目生成Dll,以及在需要的地方通过引用或PInvoke调用Dll中的功能。理解并掌握这一过程,对于提升代码复用性和系统效率具有...
本案例主要介绍了如何在ABAP环境中调用DLL文件以实现特定功能,比如连接外部数据库读取数据。 首先,我们需要创建DLL文件。在这个例子中,使用了Visual Basic 6.0(VB6)创建了一个ActiveX.DLL工程。在VB6中,定义...
Delphi创建Dll和调用Dll示例(包含Dll窗体调用) 网上介绍比较杂乱,特地整理了一份Demo代大家学习参考。 1.socketA_dll 为dll工程目录。 2.LoadDllDemo 为【静态调用】dll工程目录。 3.LoadDllDemo_动态调用 为...
创建和调用DLL可以帮助我们实现代码模块化,提高代码的复用性和执行效率。下面将详细讲解如何在C#中创建和调用DLL实例。 首先,我们需要创建一个DLL项目。在Visual Studio中,选择"新建项目",然后在模板中找到"C#...
下面我们将详细探讨如何在VS2010中使用VB.NET生成DLL文件以及如何调用这个DLL。 **生成DLL文件的步骤:** 1. **创建新项目**:启动Visual Studio 2010,选择"文件" > "新建" > "项目"。在项目模板中,选择"Visual ...
在IT领域,跨语言通信是常见的需求之一,本篇文章主要探讨如何在VB6.0环境中调用C#编写的Dll文件。VB6.0和C#属于不同平台,但通过COM(组件对象模型)和.NET Framework的支持,可以实现两者之间的交互。 首先,我们...
本篇文章将详细探讨DLL的创建、静态调用和动态调用。 首先,我们来看看DLL的创建过程。创建DLL主要涉及以下几个步骤: 1. **定义导出函数**:DLL的核心在于其导出的函数或数据,我们需要在DLL的源文件中声明并定义...
DelphiDLL创建与调用是Windows应用程序开发中的一个重要技术,它允许我们把一些常用功能封装到一个DLL(Dynamic Link Library)文件中,然后在多个应用程序之间共享这些代码,以提高程序的复用性和效率。本篇文章将...
1. **创建新项目**:在VS2012中,选择“文件”>“新建”>“项目”,然后在模板列表中选择“Win32控制台应用程序”。在向导中,选择“动态链接库(DLL)”作为项目类型。 2. **定义接口**:DLL中的函数通常通过导出来供...
3. **文档记录**:详细记录DLL文件的位置、版本以及调用方式等信息,有助于维护和更新。 4. **错误处理**:在调用DLL函数时,加入适当的错误处理逻辑,以应对可能出现的问题。 5. **考虑使用COM组件**:对于复杂的...
知识点一:DLL文件的创建和编写 在VC++环境中,创建DLL文件需要打开Visual C++程序,新建一个项目,并选择创建Win32 Dynamic Link Library项目。创建完毕后,需要编写相应的.cpp文件和头文件,其中头文件定义了要...
DLL文件包含了可执行代码和数据,可以被多个进程同时调用。开发者可以创建自己的DLL,定义函数和全局变量,供其他程序使用。 **ActiveX控件** ActiveX是微软提出的一种组件技术,它基于COM(Component Object Model...
2. 生成成功后,DLL文件将在项目的“Release”或“Debug”目录下,例如:“DLLTest.dll”。 现在,我们将在C#项目中调用此DLL: 1. 创建一个新的C#控制台应用程序项目,命名为“DLLConsumer”。 2. 右键点击...