c++写的dll文件中类中的函数无法链接,急求在线等啊
//头文件#ifdefDLL1_API#else#defineDLL1_API_declspec(dllexport)#endif//DLL1_APIDLL1_APIin...
//头文件
#ifdef DLL1_API
#else
#define DLL1_API _declspec(dllexport)
#endif // DLL1_API
DLL1_API int add(int a, int b);
DLL1_API int subtract(int a, int b);
class Point
{
public:
void output(int x, int y);
};
//源文件
#define DLL1_API _declspec(dllexport)
#include "demo05_dll1.h"
#include <windows.h>
#include<stdio.h>
int add(int a, int b)
{
return a + b;
}
int subtract(int a, int b)
{
return a - b;
}
void Point::output(int x, int y)
{
//得到当前最前的窗口的句柄
HWND hwnd = GetForegroundWindow();
HDC hdc = GetDC(hwnd);
char buf[20];
memset(buf, 0, 20);
sprintf_s(buf, "x=%d,y=%d", x, y);
TextOut(hdc, 0, 0, (LPCWSTR)buf, strlen(buf));
ReleaseDC(hwnd, hdc);
}
错误代码:
错误 1 error LNK2019: 无法解析的外部符号 "public: void __thiscall Point::output(int,int)" (?output@Point@@QAEXHH@Z),该符号在函数 "public: void __thiscall Cdemo03_test_dllDlg::OnBnClickedButton3(void)" (?OnBnClickedButton3@Cdemo03_test_dllDlg@@QAEXXZ) 中被引用 G:\c++听课文档\day19sun\demo03_test_dll\demo03_test_dll\demo03_test_dllDlg.obj demo03_test_dll
//使用此类的地方
void Cdemo03_test_dllDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
Point pt;
pt.output(5,3);
} 展开
#ifdef DLL1_API
#else
#define DLL1_API _declspec(dllexport)
#endif // DLL1_API
DLL1_API int add(int a, int b);
DLL1_API int subtract(int a, int b);
class Point
{
public:
void output(int x, int y);
};
//源文件
#define DLL1_API _declspec(dllexport)
#include "demo05_dll1.h"
#include <windows.h>
#include<stdio.h>
int add(int a, int b)
{
return a + b;
}
int subtract(int a, int b)
{
return a - b;
}
void Point::output(int x, int y)
{
//得到当前最前的窗口的句柄
HWND hwnd = GetForegroundWindow();
HDC hdc = GetDC(hwnd);
char buf[20];
memset(buf, 0, 20);
sprintf_s(buf, "x=%d,y=%d", x, y);
TextOut(hdc, 0, 0, (LPCWSTR)buf, strlen(buf));
ReleaseDC(hwnd, hdc);
}
错误代码:
错误 1 error LNK2019: 无法解析的外部符号 "public: void __thiscall Point::output(int,int)" (?output@Point@@QAEXHH@Z),该符号在函数 "public: void __thiscall Cdemo03_test_dllDlg::OnBnClickedButton3(void)" (?OnBnClickedButton3@Cdemo03_test_dllDlg@@QAEXXZ) 中被引用 G:\c++听课文档\day19sun\demo03_test_dll\demo03_test_dll\demo03_test_dllDlg.obj demo03_test_dll
//使用此类的地方
void Cdemo03_test_dllDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
Point pt;
pt.output(5,3);
} 展开
2个回答
展开全部
void Cdemo03_test_dllDlg::OnBnClickedButton3()不是在一个类中吧,试试类对象指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你必须声明为 __stdcall 模式导出才能行
追问
我是新手,你能给我加一下吗?我是照着书上看的,今天才第一次接触到这个东西,谢谢了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询