求问Visual Studio 2010打不开dll的有关问题
求问Visual Studio 2010打不开dll的问题
各位好,刚刚开始学着自己写dll就遇到的奇怪的问题,期待解答~
这个是dll的项目代码:
#define DLLEXPORT _declspec(dllexport)
#include <iostream>
using namespace std;
DLLEXPORT int add(int a, int b)
{
return (a+b);
}
DLLEXPORT int subtract(int a,int b)
{
return (a-b);
}
上面的编译能够通过,之后把生成的lib跟dll拷到test的文件夹下面了,test工程的属性也设置好了lib的路径,代码如下:
#define DLLIMPORT _declspec(dllimport)
#include <iostream>
using namespace std;
DLLIMPORT int add(int a,int b);
DLLIMPORT int subtract(int a,int b);
int _tmain(int argc, _TCHAR* argv[])
{
int a,b;
while(cin>>a>>b)
{
cout<<"Add is = "<<add(a,b)<<endl;
cout<<"Subtract is = "<<subtract(a,b)<<endl;
}
return 0;
}
编译之后没有语法错误,但是vs就是告诉我dll文件无法打开,实在是看不出哪里有问题,期待解答^-^
------解决方案--------------------
vs告诉你不能打开,还是vs编出的exe有提示?dll与exe的版本一样吗?最好都弄成一样的,或者都debug版,或者都release版。
------解决方案--------------------
这个问题我也遇到过
应该是DLL和LIB放错了地方
你把DLL文放到Debug文件夹下(包含exe程序的那个Debug文件夹)
把Lib文件放到你的代码文件夹里(也就是和CPP\H文件放到一起)
就行了
各位好,刚刚开始学着自己写dll就遇到的奇怪的问题,期待解答~
这个是dll的项目代码:
#define DLLEXPORT _declspec(dllexport)
#include <iostream>
using namespace std;
DLLEXPORT int add(int a, int b)
{
return (a+b);
}
DLLEXPORT int subtract(int a,int b)
{
return (a-b);
}
上面的编译能够通过,之后把生成的lib跟dll拷到test的文件夹下面了,test工程的属性也设置好了lib的路径,代码如下:
#define DLLIMPORT _declspec(dllimport)
#include <iostream>
using namespace std;
DLLIMPORT int add(int a,int b);
DLLIMPORT int subtract(int a,int b);
int _tmain(int argc, _TCHAR* argv[])
{
int a,b;
while(cin>>a>>b)
{
cout<<"Add is = "<<add(a,b)<<endl;
cout<<"Subtract is = "<<subtract(a,b)<<endl;
}
return 0;
}
编译之后没有语法错误,但是vs就是告诉我dll文件无法打开,实在是看不出哪里有问题,期待解答^-^
------解决方案--------------------
vs告诉你不能打开,还是vs编出的exe有提示?dll与exe的版本一样吗?最好都弄成一样的,或者都debug版,或者都release版。
------解决方案--------------------
这个问题我也遇到过
应该是DLL和LIB放错了地方
你把DLL文放到Debug文件夹下(包含exe程序的那个Debug文件夹)
把Lib文件放到你的代码文件夹里(也就是和CPP\H文件放到一起)
就行了