如何正确将windows.h作为模块导入

2022-05-16 00:00:00 module c++ c++20

mybar.ixx

export module mybar;

#include "windows.h"

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

main.cpp

import mybar;

#include "windows.h"

void main() {
    trywinapi();
}

和Visual Studio 2019编译错误:

错误LNK2019:函数";Double__cdecl trywinapi(Void)";(?trywinapi@@YANXZ::<;!mybar>;)中引用的未解析外部符号__imp__GlobalMemoyStatusEx@4::<;!mybar>;)


解决方案

全局模块片段在模块名称之前:

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

相关文章