繁体   English   中英

在VC ++中创建DLL(Visual Studio 2008)

[英]Creating DLL in VC++ (Visual Studio 2008)

请对此提供帮助,它的确令人不快,可能是因为我是第一次这样做,没有经验。

目的:查找数字的阶乘

步骤1:在模板MFC DLL中创建VC ++ MFC类型的新项目

步骤2:然后创建一个常规的DLL(MFC共享),我说是

步骤3:我使用以下代码创建头文件(ServerHeader.h)

_declspec (dllimport) int factorial(int no);

步骤4:我使用代码创建cpp文件(ServerFactorial.cpp)

#include "stdafx.h" 
_declspec (dllexport) int factorial(int no)
{


return no == 0 ? 1 : no * factorial(no-1);
}

步骤5:i建立项目,一切都很好

步骤6:我创建另一个项目VC ++ Win32 Client,并在模板Win32 Console Application中创建应用程序设置为EMPTY PROJECT,并使用代码创建一个新的cpp文件(MainClass.cpp)

#include "ServerHeader.h"

#include <iostream.h>

void main()
{


int no,i;


cout<<"Enter number";


cin>>no;


i=factorial(n);  // calling the method


cout<<endl<<i;   // printing ans

}

步骤7:复制ServerHeader.h,Server.dll,Server.lib(有2个库文件,一个是Object,另一个是Export),我将全部4个文件从Server复制到客户端

步骤8:右键单击Client项目,设置链接器的常规设置,并写入我复制到Client项目文件夹中的lib文件的路径

步骤9:我建立了项目

错误1致命错误C1083:无法打开包含文件:iostream.h:没有此类文件或目录f:\\ client \\ client \\ mainclass.cpp 2客户端

抱歉,这么长的帖子。

它应该是#include <iostream>然后您需要在代码中包含名称空间std::cout或包含using namespace std语句。

如果要使用共享库(dll),则不能直接调用阶乘。 您必须使用LoadLibrary加载dll,在对GetProcAddress的调用中使用结果句柄和函数名称,并调用返回的函数指针。 为了能够按名称加载该函数,您应该在dll中使用外部“ C”说明符对其进行声明,以便其名称无需修饰即可导出。 一种替代方法是将一个.def文件添加到dll项目中,并使用具有序数的GetProcAddress。 希望这些一般性指导能对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM