window.h中
typedef struct
{
WNDCLASS* wc;
HWND hwnd;
WNDPROC proc;
} PRO_Window;
PRO_Window* PRO_WindowCreate(int width, int height, const char* title);
window.c 我认为这不重要但是......
PRO_Window* PRO_WindowCreate(int width, int height, const char* title) { /* code */ }
的main.c
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR CmdLine, int nCmdShow)
{
PRO_Window* win = PRO_WindowCreate( 300, 300, "STATIC");
return 0;
}
main.o:main.c|| undefined reference to `PRO_WindowCreate(int, int, char const*)'|
*将其缩减为SSCCE
*我使用的是windows api
答案 0 :(得分:1)
.h文件没有const
,而.c文件没有。{/ p>
答案 1 :(得分:1)
你的声明(在window.h中):
PRO_Window* PRO_WindowCreate(int width, int height, char* title);
与定义(window.c)不同:
PRO_Window* PRO_WindowCreate(int width, int height, const char* title)
请注意最后一个参数。
答案 2 :(得分:1)
Boarland-C编译器的错误似乎是因为wc
之后wnd->proc = NULL;
的声明。尝试在初始化语句上面移动声明......
答案 3 :(得分:0)
看起来像GCC链接错误,但是你没有显示用于编译的命令行,所以很难分辨。
此外,您似乎错过了#include
C文件中的标题。
答案 4 :(得分:0)
你应该在PRO_WindowCreate函数的实现和用户中#include "window.h"
提交文件。