美文网首页
在ASP.NET中调用 非托管的C++ DLL文件(通过C++\

在ASP.NET中调用 非托管的C++ DLL文件(通过C++\

作者: chbeychevelle | 来源:发表于2019-02-19 22:12 被阅读0次

    今天打算给一个OC项目写个简单的Web API,顺便了解如何利用 C++\CLIL来桥接C++ 与C#,本以为用VS2017一路生成就可以了,哪知道掉了个坑,在这里记录一下:

    目标: myDll.dll (c++) --> myDll_Cli.dll(c\cli) --> web api(c#) 完成图如下: 1.gif
    1、新建web api 、添加mydll (c++)以及 mydllCil 三个项目,这里需要注意平台选择x86;
    2、配置mydllCi项目:

    1.设置项目属性 ->【VC++目录】->【包含目录】和【库目录】为 myDll(c++) 目录;

    2.jpg
    1. 设置项目属性 ->【链接器】->【延迟加载的DLL】为myDll.dll(C++项目即将生成的项目)


      3.jpg
    3、配置webapi项目

    1)设置项目属性 ->【生成事件】 -> 【后期生成事件命令行】为如下:

    copy  $(SolutionDir)$(ConfigurationName)\MYDLL.dll $(ProjectDir)$(OutDir)
    

    这里就是dos命令,具体可以百度命令行 指令


    4.jpg

    2)添加代码 到 Global.asax 文件:

                String _path = String.Concat(System.Environment.GetEnvironmentVariable("PATH"), ";", System.AppDomain.CurrentDomain.RelativeSearchPath);
                System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
    
    5.jpg

    这是大坑,为啥要添加直接给出网址:ASP.NET与非托管DLL的那些事儿

    相关文章

      网友评论

          本文标题:在ASP.NET中调用 非托管的C++ DLL文件(通过C++\

          本文链接:https://www.haomeiwen.com/subject/uxofyqtx.html