c++ - 使用 Visual Studio 构建 x64 DLL
问题描述
我正在尝试将我的 dll 文件构建为 x64,这是我在 VisualStudio 上所做的配置:
- 我已将解决方案和项目平台设置为 x64:
- 根据这个答案,我已将命名约定从 __cdecl 更改为 __fastcall:
- 根据此评论,我已将参数 _WIN64 添加到预处理器定义中:
但是,当我重建我的项目并使用记事本打开我的 dll 文件时,我看到PE L
这意味着我的 dll 文件是 32 位的。
这是 C/C++ 设置的命令行选项(为了更好地阅读,我在其中放置了几个换行符):
/JMC /permissive- /GS /W3 /Zc:wchar_t /ZI /Gm- /Od /sdl
/Fd"x64\Debug\vc142.pdb" /Zc:inline /fp:precise /D "_WIN64" /D "_DEBUG" /D
"_CONSOLE" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX-
/Zc:forScope /RTC1 /Gr /MDd /FC /Fa"x64\Debug\" /EHsc /nologo /Fo"x64\Debug\"
/Fp"x64\Debug\DllCall-CppConsoleApp-1.pch" /diagnostics:column
- 链接器设置:
我应该怎么办?
解决方案
推荐阅读
- c++ - 安装构建工具后找不到 Visual Studio Code MSVC cl.exe
- excel - VBA用户定义范围并检查它是否为空
- google-cloud-data-fusion - 当项目位于组织下时,无法向数据融合服务帐户授予权限
- java - Android Firestore 将限制设置为每位用户 1 票
- javascript - 是否可以使用 ReactJS 在组件内部传递 reactbootstrap 表的 onClick 函数
- sql - 来自不同长度变量的 Exec sql 的 SQLRPGLE 语法?
- html - 当元素存在于不同的父元素中时,我们可以重新排序元素吗?
- reactjs - 如何摆脱由 set State 创建的避免无限循环?
- c - 用 C 编写大量文件后 Ubuntu 冻结
- javascript - 如何使用 Jest 在内部使用异步调用和调度测试动作减速器?