打印

用VS2005导出DLL时,有几种方法啊?

[复制链接]
2060|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hulan1985|  楼主 | 2011-3-20 20:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
那种更好呢?有人知道不
沙发
peggying| | 2011-11-15 18:30 | 只看该作者
由于微软在vs2005中启用了新的编译方法,为每个aspx页面生成一个单独的程序。虽然这样可以提高程序首次的运行速度,但是给程序的维护带来了极大的不便。考虑广开发发者维护的习惯微软又推出了WebDeployment Project这个插件让vs2005在编译完成后将所有的单独的程序文件汇总成一个。
WebDeployment Project下载:
http://download.microsoft.com/do ... DeploymentSetup.msi
1.当您下载并安装了WebDeployment Project后,您需要在web项目上点击鼠标右键点击Add Web Deployment Project对web项目创建一个合并项目将vs2005生成的每个页面的dll文件合并为一个。Name是项目的名称可以命名为WebPage;Location是项目存放的路径,此路径同时还存放编译成功后发布的程序。选择存放项目的路径时一定要选择一个和项目代码同级的文件夹,不可以将该项目存放在项目代码下,主要原因是项目编译发布时可能会出现文件冲突。
2.创建完成项目后您可以在vs2005看到一个新的项目,项目下没有任何文件。这个就是刚刚使用WebDeployment Project创建的合并项目。在项目上点击鼠标右键找到属性选项卡。然后找到Output Assemblies选项,将其设置为Merge all pages and control outputs to a single assembly并指定Assembly name为WebPage。完成设置后保存。此时您就可以正常的进行编译操作了。

使用特权

评论回复
板凳
bettying| | 2011-11-28 21:48 | 只看该作者
1.创建dll的工程为dlltest

//dlltest.h
#ifdef DLLTEST_EXPORTS
#define DLLTEST_API __declspec(dllexport)
#else
#define DLLTEST_API __declspec(dllimport)
#endif

//dlltest.cpp
#include "stdafx.h"
#include"dllTest.h"

#ifdef _MANAGED
#pragma managed(push, off)
#endif

BOOL APIENTRY DllMain( HMODULE hModule,
  DWORD ul_reason_for_call,
  LPVOID lpReserved
)
{
  return TRUE;
}

#ifdef _MANAGED
#pragma managed(pop)
#endif

//add_Fun.cpp
#include "stdafx.h"
#include"dlltest.h"
DLLTEST_API int add_Fun( int *a,
int *b)
{
return (*a+*b);
}
用viewdll2.0测试工具可以看到dll要导出的函数名

2.工程testdll,调用生成的dlltest.dll

先把dlltest.dll放在工程testdll的子目录debug下

//testdll.cpp
#include "stdafx.h"
#include<windows.h>
typedef int (*AddFun)(int *a,int *b);
int _tmain(int argc, _TCHAR* argv[])
{
HINSTANCE hDLL;  
hDLL=LoadLibrary(_T("dlltest.dll"));//单步调试,hDLL不是空指针
if(hDLL!=NULL){
  AddFun addfun=(AddFun)GetProcAddress(hDLL,"add_Fun"); //单步调试,addfun为空指针???
  int a=3;
  int b=4;
  int c;
  if(addfun!=NULL){
  c=addfun(&a,&b);
  printf("%d",c);
  }
  }
  
  FreeLibrary(hDLL);//卸载MyDll.dll文件;
return 0;
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

1059

帖子

0

粉丝