Я понятия не имею, почему следующее дает мне: * "ошибка LNK2001: неразрешенный внешний символ 'struct Win32Vars_t win32' (? Win32 @@ 3UWin32Vars_t @@ A)" * Если я начну новый проект и создайте этот заголовочный файл, который он компилирует. Я также создать еще один-структуру, подобную этой, и это также компилируется нормально (хотя вместо «экстерном -variablename-» это статический. Если это не работает?Неразрешенный внешний символ (опять же)
win_local.h
#ifndef __WIN_LOCAL_H__
#define __WIN_LOCAL_H__
#include <windows.h>
void System_CreateConsole(void);
typedef struct {
HWND hWnd;
HINSTANCE hInstance;
} Win32Vars_t;
extern Win32Vars_t win32;
#endif
Что это с сообщением cryptic @@ 3U в скобках?
Извините за создание еще одного сообщения о нерешенных внешних. Я делал некоторое чтение перед рукой и пробовал разные вещи. Из того, что я читал, это C способ делать что-то, но должен по-прежнему работать на C++. И да, файл .h установлен на компиляцию C/C++.
Вы не определяете 'win32' в любом месте, не так (нет, нет). –
Что касается странных символов в названии, читайте о [название mangling] (https://en.wikipedia.org/wiki/Name_mangling). –
В заголовке вы пообещали, что будет создана структура Win32Vars_t с именем win32. Тогда вы не предоставили его, и линкер сказал вам это. –