调试 ASP MVC 应用程序中使用的 C++ DLL

Debug a C++ DLL used in ASP MVC application

我的 ASP MVC5 Web 应用程序项目的 bin 文件夹中有一个 C++ DLL。 (我从原始 C++ 项目复制并粘贴了它,因为我无法添加引用)我能够调用 DLL 的一些函数(使用 DLLImport)。我的其中一个功能有问题。这只有在我能够进入 C++ DLL 的代码时才能解决。我还有 C++ 项目的代码(使用 Cmake 构建)。 从我的 Web 应用程序代码调试时如何访问 C++ 代码。如果我使用 F11,我应该能够访问 C++ 代码。

Debug a C++ DLL used in ASP MVC application

1) 首先,确保你所引用的 DLL 中有一个 PDB 文件或其他输出文件它的文件夹。

您应该在 VS IDE 中打开 c++ 项目,然后确保您使用 Debugx64 构建它模式。如果是,请重新构建它。

然后在c# web项目中,使用DLLImport引用存在pdb的输出Debug文件夹中的xxx.dll和其他整个文件。

2) 第二个,转到工具 --> 选项 --> 项目和解决方案 --> Web 项目 --> 使用 64 位版本的 IIS Express

3)第三,如果你调试的是net core web项目,请右击该项目--> Properties- ->调试-->勾选启用本机代码调试.

如果调试的是net framework web项目,请右击项目--> Properties-->Web-- ->检查本地代码.

4)第四,然后关闭VS Instance,删除binobj文件夹asp.net 核心项目,然后重新启动您的 Web 项目并再次测试。

另外,可以查看这个文档Debug C# and C++ in the same debugging session.

更新 1

由于错误,我认为您应该将 IIS 设置为 x64,因为您使用的是 x64 本机 dll。右击你的项目-->Properties--> Web-->将IIS bitness改为x64.