如何在C++/CX中加载动态链接库dll代码

Roy Li - MSFT 32,721 信誉分 Microsoft 供应商
2024-05-17T07:08:48.58+00:00

你好! 我学习了用C++/CX描述加载动态dll的代码。 我如何描述C++/CX加载动态dll的代码? 请向我展示示例代码。

谢谢

此问题由What do I describe code of loading dynamic dll by C++/CX? - Microsoft Q&A总结而来.

通用 Windows 平台 (UWP)
通用 Windows 平台 (UWP)
一个 Microsoft 平台,用于生成和发布适用于 Windows 桌面设备的应用。
32 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Junjie Zhu - MSFT 16,146 信誉分 Microsoft 供应商
    2024-05-17T09:35:17.3933333+00:00

    你好

    UWP C++/CX 可以加载win32和UWP dynamic DLL. 以下是我的测试步骤:

    DLL(Win32 or UWP)

    User's image

    1. 创建DLL工程,命名 "DllTest".
    2. 在"Pch,h“中添加 extern "C".
    extern "C"
    {    
       _declspec(dllexport) void mainDll(double a, double b, double* aplusb);
    }
    
    1. 在 "Pch.cpp"中添加加法函数.
    #include "pch.h"
    void mainDll(double a, double b, double* aplusb)
    {    
      *aplusb = a + b;
    }
    
    1. 重建项目,在输出文件中找到dll文件,将其复制到UWP项目的AppX文件中。 建议修改输出目录。User's image

    UWP(C++/CX):

    1. 创建UWP C++/CX project, 命名App2.
    2. 添加调用dll的代码.
    HINSTANCE hDLL = LoadLibrary(L"DllTest.dll"); 
    typedef void (*func)(double a, double b, double* aplusb); 
    func callDll = (func)GetProcAddress(hDLL, "mainDll"); 
    double a = 1, b = 2, result;
    callDll(a, b, &result);
    
    1. 检查输出结果,应该是3。

    谢谢!


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收电子邮件通知,请按照我们的文档中的步骤启用电子邮件通知 此线程的相关电子邮件通知。

    0 个注释 无注释