VS2022 C#代码函数调用堆栈的过程显示的是C++,应该怎么改回C#呢?

使用C++ 来调用C#DLL 并且调试程序环境:使用VS studio 2019C#项目的设置1、C# -> 属性 -> 应用程序 -> 目标框架 ->.NET Framework 42、C# -> 属性 -> 调试 -> 调试程序引擎 -> 勾上 启用本地代码调试3、C# -> 属性 -> 生成 -> 输出 -> 勾上 为COM互操作注册C++项目的设置1、首先创建一个C++的控制台程序,下面我们将在C++项目中修改2、使用#using 来添加DLL 示例:#using "hhhh.dll"3、项目->属性-> C/C++ -> 命令行 ->其他选项 添加:/Zc:twoPhase-4、项目->属性->配置属性->高级->C++/CLI属性 -> 公共语言运行时支持 选择 公共语言运行时支持(/clr)5、C/C++ -> 常规 -> 调试信息格式 -> 选择 程序数据库(/Zi)注意1、^这个符号是使得托管和非托管代码混合开发更加方便下面是一个小的demo// MyDLLResult.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include <iostream>
#using "hhhh.dll"
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
using namespace hhh;
using namespace std;
int main()
{
hhh::hhh^ api = gcnew hhh::hhh();
char strhhh[]{ "123456789" };
String^ hhhh = System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)strhhh);
char strOhhh[]{ "hhhhh" };
String^ hhhhh = System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)strOhhh);
String^ Restlt = api->ORBIC_TAB_CUSTOMIZATION_INFO_GET(hhhh , hhhhh );
char* outStr = (char*)Marshal::StringToHGlobalAnsi(Restlt).ToPointer();
cout << "outStr:"<<outStr <<endl;
cout << "Hello World!\n";
}
``

我要回帖

更多关于 vs如何运行代码 的文章