3
社区成员
发帖
与我相关
我的任务
分享| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 右键解决方案 → 属性 | 打开解决方案属性页 |
| 2 | 选择 通用属性 → 启动项目 | 进入启动项目设置 |
| 3 | 选择 多个启动项目 | 允许多个项目同时启动 |
| 4 | CandyCAD → 操作 设为 启动 | WPF 主程序 |
| 5 | CandyRenderEngine → 操作 设为 启动 | C++ DLL 项目(关键!) |
| 6 | 点击 确定 | 保存设置 |
在 CandyRenderEngine 项目中:
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 右键 CandyRenderEngine → 属性 | 打开项目属性 |
| 2 | 选择 生成事件 选项卡 | 进入后期事件设置 |
| 3 | 在 后期生成事件命令行 中输入命令 | 见下方命令 |
| 4 | 点击 确定 | 保存设置 |
后期生成事件命令(二选一):
使用相对路径:
cmd
xcopy "$(OutDir)$(ProjectName).dll" "$(SolutionDir)CandyCAD\$(OutDir)" /Y xcopy "$(ProjectDir)libs\glfw\lib-vc2022\glfw3.dll" "$(SolutionDir)CandyCAD\$(OutDir)" /Y
使用绝对路径(更稳定):
cmd
xcopy /Y "E:\Test\CAD\CandyRenderEngine\x64\Debug\CandyRenderEngine.dll" "E:\Test\CAD\CandyCAD\bin\Debug\net8.0-windows\" xcopy /Y "E:\Test\CAD\CandyRenderEngine\libs\glfw\lib-vc2022\glfw3.dll" "E:\Test\CAD\CandyCAD\bin\Debug\net8.0-windows\"
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 右键 CandyRenderEngine → 属性 | 打开项目属性 |
| 2 | 选择 调试 选项卡 | 进入调试设置 |
| 3 | 调试器类型:选择 仅限本机 | 允许调试原生 C++ 代码 |
| 4 | 点击 确定 | 保存设置 |
| 检查项 | 位置 | 要求 |
|---|---|---|
| 配置 | 工具栏下拉框 | Debug |
| 平台 | 工具栏下拉框 | x64 |
| 优化 | C/C++ → 优化 → 优化 | 已禁用 (/Od) |
| 调试信息 | 链接器 → 调试 → 生成调试信息 | 生成调试信息 (/DEBUG) |
| 项目 | 内容 | 说明 |
|---|---|---|
RenderInterop.cs | 使用 [DllImport("CandyRenderEngine.dll")] | P/Invoke 声明 |
OpenGLControl.cs | 调用 RenderInterop.Initialize(this.Handle, ...) | 传入 WinForms 控件的窗口句柄 |
这是代码层面的固定写法,不需要额外配置。
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 在 CandyRenderEngine 项目的 .cpp 文件中设置断点 | 点击行号左侧 |
| 2 | 确认解决方案平台为 x64 | 工具栏下拉框 |
| 3 | 按 F5 启动调试 | 多启动项目模式会自动启动 WPF 和 C++ 调试器 |
| 4 | 在 WPF 中执行触发 C++ 调用的操作 | 如打开文件、调整窗口大小等 |
| 5 | 断点命中,可以查看变量、单步执行 |
| 检查项 | 状态 |
|---|---|
| 解决方案设为 多个启动项目 | ☐ |
CandyCAD 操作为 启动 | ☐ |
CandyRenderEngine 操作为 启动 | ☐ |
| C++ 项目配置为 Debug x64 | ☐ |
| C++ 优化设为 已禁用 (/Od) | ☐ |
| C++ 调试信息设为 生成调试信息 (/DEBUG) | ☐ |
| C++ 调试器类型设为 仅限本机 | ☐ |
| 后期生成事件已配置 | ☐ |
| 断点显示为 实心红圆 🔴 | ☐ |