模块导入 (C++) ---错误"module file mapping invalid"



ImageLoader.cpp//错误:"SafeReleaseM"的E3344模块文件映射无效

import  SafeReleaseM;
import <wincodec.h>;
import <d2d1.h>;
class ImageLoader{};

SafeReleaseM.ixx

export module SafeReleaseM;
export template <class T> void SafeRelease(T** type)
{
if (*type)
{
(*type)->Release();
*type = NULL;
}
}

我已经将标准设置为最新的C++标准和C标准,将我的源文件夹添加到模块依赖目录中,启用了模块扫描。

在我看来,这是一个非常基本的模块测试,我做错了什么吗?我是S.O的新手,所以如果我应该添加其他设置信息,请告诉我。

编辑:我正在使用Visual Studio 2022社区(msvc(

编辑#2:在一个单独的项目中,类似的方法可以导出模板函数。也许我的项目配置有问题。

创建一个新项目并在中粘贴相同的代码。

不确定是什么导致了Visual Studio文件映射问题,但我所做的不同之处在于,在一个新项目中,我通过解决方案资源管理器窗口创建了文件。-错误可能与依赖项/配置有关。或由更新引起。

以下程序对我有效。

  1. 退出Visual Studio
  2. 删除项目目录中的x64目录
  3. 启动Visual Studio
  4. 重新加载解决方案并生成
  5. 错误对我来说消失了

相关内容

  • 没有找到相关文章