我现在刚刚在学习使用dll,就一个最简单的例子想试着实现一下调用,可是老是出现找不到已编译好的头文件,实在是没辙了!
我用的例子如下:
//这个是我的dll文件的内容,目的就是显示hello world!
// sampledll.cpp
//#include "stdafx.h"
#define EXPORTING_DLL
#include "sampledll.h"
#include "stdio.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}void HelloWorld()
{
printf("hello world!");
}
//这个是头文件
// File: sampledll.h
//
#ifndef INDLL_H
#define INDLL_H#ifdef EXPORTING_DLL
extern __declspec(dllexport) void HelloWorld() ;
#else
extern __declspec(dllimport) void HelloWorld() ;
#endif#endif
在编译好形成sampledll.lib之后将他放入新建的工程a文件中
a中的a.cpp文件内容如下
#include "stdafx.h"
#pragma comment(lib, "sampledll.lib") #include "sampledll.h"
int main(int argc, char* argv[])
{
HelloWorld();
return 0;
}
运行后总是出现问题:不存在或者找不到sampledll.h
这到底是怎么回事?????
这个文件不是只要放在需要调用的工程文件夹下面就行了
另外再添加个#pragma comment(lib, "sampledll.lib") 就可以了么???
我用的例子如下:
//这个是我的dll文件的内容,目的就是显示hello world!
// sampledll.cpp
//#include "stdafx.h"
#define EXPORTING_DLL
#include "sampledll.h"
#include "stdio.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}void HelloWorld()
{
printf("hello world!");
}
//这个是头文件
// File: sampledll.h
//
#ifndef INDLL_H
#define INDLL_H#ifdef EXPORTING_DLL
extern __declspec(dllexport) void HelloWorld() ;
#else
extern __declspec(dllimport) void HelloWorld() ;
#endif#endif
在编译好形成sampledll.lib之后将他放入新建的工程a文件中
a中的a.cpp文件内容如下
#include "stdafx.h"
#pragma comment(lib, "sampledll.lib") #include "sampledll.h"
int main(int argc, char* argv[])
{
HelloWorld();
return 0;
}
运行后总是出现问题:不存在或者找不到sampledll.h
这到底是怎么回事?????
这个文件不是只要放在需要调用的工程文件夹下面就行了
另外再添加个#pragma comment(lib, "sampledll.lib") 就可以了么???
没有头文件,编译器到哪去找DLL中的函数呢?