
vs2008中在没有lib的情况下调用dll
现在有一个现成的dll和def文件,在vs2008下要对dll进行调用,但是没有lib文件,请问如何生成lib文件进行dll的调用?或者不需要使用lib的方法?曾尝试使用...
现在有一个现成的dll和def文件,在vs2008下要对dll进行调用,但是没有lib文件,请问如何生成lib文件进行dll的调用?或者不需要使用lib的方法?
曾尝试使用vc++中自带的lib.exe,但是不能使用,不知道有没有什么地方要注意一下?
本人对dll的调用不太熟悉,可否讲的比较仔细一些,多谢啦!
是控制台的应用程序,觉得静态链接比动态链接更好理解和使用 ,可否指教怎么样能得到lib文件? 展开
曾尝试使用vc++中自带的lib.exe,但是不能使用,不知道有没有什么地方要注意一下?
本人对dll的调用不太熟悉,可否讲的比较仔细一些,多谢啦!
是控制台的应用程序,觉得静态链接比动态链接更好理解和使用 ,可否指教怎么样能得到lib文件? 展开
1个回答
2010-07-23
展开全部
比如在用lib方式下
函数声明如下
extern "C"
{
__declspec(dllexport)
int WINAPI icePub_makePaths(char *strPath);
}
则可以用以下代替
{
char strPath[1024*10];
typedef int (WINAPI ICEPUB_MAKEPATHS)(char *strPath);
ICEPUB_MAKEPATHS *icePub_makePaths = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_makePaths = (ICEPUB_MAKEPATHS *)GetProcAddress(hDLLDrv, "icePub_makePaths");
}
icePub_makePaths(strPath);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
}
函数声明如下
extern "C"
{
__declspec(dllexport)
int WINAPI icePub_makePaths(char *strPath);
}
则可以用以下代替
{
char strPath[1024*10];
typedef int (WINAPI ICEPUB_MAKEPATHS)(char *strPath);
ICEPUB_MAKEPATHS *icePub_makePaths = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_makePaths = (ICEPUB_MAKEPATHS *)GetProcAddress(hDLLDrv, "icePub_makePaths");
}
icePub_makePaths(strPath);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询