首页 > 解决方案 > 如何正确导入 windows.h 作为模块

问题描述

我的酒吧.ixx

export module mybar;

#include "windows.h"

export
double trywinapi() {
    MEMORYSTATUSEX memInfo;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);
    GlobalMemoryStatusEx(&memInfo);
    return memInfo.ullTotalPageFile;
}

主文件

import mybar;

#include "windows.h"

void main() {
    trywinapi();
}

Visual Studio 2019 编译错误:

错误 LNK2019:未解析的外部符号 __imp__GlobalMemoryStatusEx@4::<!mybar> 在函数“double __cdecl trywinapi(void)”(?trywinapi@@YANXZ::<!mybar>) 中引用

标签: c++modulec++20

解决方案


全局模块片段位于模块名称之前:

module;
#include<windows.h>
export module mybar;
export double trywinapi() {…}

推荐阅读