我有个问题 :
FPSlimiter.cpp:
#include <windows.h>
#include <mmsystem.h>
#include "FPSlimit.h"
FPSlimiter limiter;
void LIMIT_FPS(DWORD FPS_LIMIT)
{
static DWORD LAST_FRAME_TIME = 0;
limiter.CURRENT_FRAME_TIME = timeGetTime();
if ((limiter.CURRENT_FRAME_TIME - LAST_FRAME_TIME) < (1000 / FPS_LIMIT))
{
return;
}
LAST_FRAME_TIME = limiter.CURRENT_FRAME_TIME;
}
FPSlimiter.h:
#include <mmsystem.h>
#include <windows.h>
class FPSlimiter
{
public:
void LIMIT_FPS(DWORD FPS_LIMIT);
DWORD CURRENT_FRAME_TIME;
};
从main.cpp调用函数:
DWORD MAX_FPS = 60;
limiter.LIMIT_FPS(MAX_FPS);
我得到错误:
未定义对“FPSlimiter::LIMIT_FPS(unsigned long)”的引用
对不起,这堆代码,但我找不到解决方案。谢谢。
最佳答案
LIMIT_FPS
是FPSlimiter
的成员,因此您的定义必须在该类的范围内:
void FPSlimiter::LIMIT_FPS(DWORD FPS_LIMIT) { .... }
^^^^^^^^^^^^
否则,您只是定义了一个不同的非成员函数。
关于c++ - 函数未定义引用c++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20303201/