将LIB文件复制到testB文件夹里(textB与Debug和Release文件夹平级)
将DLL文件复制到Debug文件夹里(不复制编译能通过但不能运行)
头文件也复制到 lib 所在的文件夹下
空白win32 DLL工程中 新建CPP 和H
.h
#ifndef __JISUAN_0709B__
#define __JISUAN_0709B__ _declspec(dllimport)
#endif
//#include <afxwin.h>
#include <Windows.h> //这样win32 DLL工程也能用WINAPI
#include <stdio.h>
class __JISUAN_0709B__ student
{
public:
void output(int x,int y);
};
.cpp
#define __JISUAN_0709B__ _declspec(dllexport)
#include "jisuan0709B.h"
void student::output(int x,int y)
{
//返回调用者进程当前正在使用的那个窗口的句柄
HWND hwnd=::GetForegroundWindow();
//获取DC
HDC hdc=::GetDC(hwnd);
char buf[20];
::memset(buf,0,20);
::sprintf_s(buf,"x=%d,y=%d",x,y);
//输出坐标
::TextOutA(hdc,0,0,buf,strlen(buf));
//释放DC
::ReleaseDC(hwnd,hdc);
}
编译 生成lib dll 还有.h 复制到测试程序相应的位置
在测试工程中
stdafx.h
#pragma comment (lib,"0709B.lib")
#include "jisuan0709B.h" //新加的
dlg.cpp中
void Ctest0709BDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
student A;<span style="white-space:pre"> </span>//使用从DLL 导入的类
A.output(123,456);
}
风行者引领群雄者行风