dll与exe之间的问题

skyair624 2008-04-22 04:53:45
Linking...
BBB.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl Add(int,int)" (__imp_?Add@@YAHHH@Z)
Debug/BBB.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

.exe:
==================================

#include "stdafx.h"
#include "..\AAA\AAA.h"

int main(int argc, char* argv[])
{
int a;
a=Add(10,10);
printf("Hello World!\n");
printf("%d",a);
return 0;
}

.dll:
==================================
.h:

*************
#ifdef AAA_EXPORTS
#define AAA_API __declspec(dllexport)
#else
#define AAA_API __declspec(dllimport)
#endif


AAA_API int Add( int a, int b );

AAA_API void Function( void );

.cpp
*************
#include "stdafx.h"
#include <iostream.h>
#include "AAA.h"

int Add( int a, int b )
{
return( a + b );
}

// Function will print out a text string
void Function( void )
{
cout<< "DLL Called!" <<endl;
}


谁来解决这个问题?
(不要说的太笼统,详细一些,最好把运行成功的开发包[不要删任何文件]发我邮箱[skyair624@yahoo.com.cn]!在此先谢谢了!如能解决马上结帖赠分。)
...全文
68 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyh12345 2008-04-23
  • 打赏
  • 举报
回复
dll和exe放在一起
skyair624 2008-04-23
  • 打赏
  • 举报
回复
很感谢大家的帮助!
改正了一些错误后不知道怎么回事通过了编译,组建。但是运行时出现了错误:
找不到DLL文件怎么办?。。。。。。
skyair624 2008-04-23
  • 打赏
  • 举报
回复
好的,运行起来了,非常感谢大家!!
lenux 2008-04-23
  • 打赏
  • 举报
回复
dll和调用dll的exe放在同一个目录,或者dll放在window下
Eleven 2008-04-22
  • 打赏
  • 举报
回复
在使用Add()以前,
_declspec(dllimport) int add(int a,int b);

在函数中
HINSTANCE hInst;
hInst=LoadLibrary("Dll3.dll");
typedef int (*ADDPROC)(int a,int b);

ADDPROC Add=(ADDPROC)GetProcAddress(hInst,MAKEINTRESOURCE(1));
if(!Add)
{
MessageBox("获取函数地址失败!");
return;
}
CString str;
str.Format("5+3=%d",Add(5,3));
MessageBox(str);
FreeLibrary(hInst);
ouyh12345 2008-04-22
  • 打赏
  • 举报
回复
没有添加库

.exe:
==================================
#include "stdafx.h"
#include "..\AAA\AAA.h"
#pragma comment(lib, "AAA.lib")

int main(int argc, char* argv[])
{
int a;
a=Add(10,10);
printf("Hello World!\n");
printf("%d",a);
return 0;
}

并把AAA.lib拷贝到main所在目录下
AndyXia 2008-04-22
  • 打赏
  • 举报
回复
在dll的stdafx.h中加入

#define AAA_EXPORTS
vrace 2008-04-22
  • 打赏
  • 举报
回复
在你 DLL 的工程里面做一个 .DEF 文件,这样写

LIBRARY YOUR_DLL_NAME
EXPORTS
Add

然后再编译

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧