• c++ 调用dll


    1.首先写一个dll程序并且输出成dll. 新建win32项目,然后在应用程序类型中选择dll.

    HelloDll.h:

    #pragma once
    
    #ifndef MYDLL_API_EXPORTS  
    #define MYDLL_API __declspec(dllexport)  
    #else  
    #define MYDLL_API __declspec(dllimport)  
    #endif  
    extern "C" MYDLL_API void sayHello();

    HelloDll.cpp

    // HelloDll.cpp : 定义 DLL 应用程序的导出函数。
    //
    
    #include "stdafx.h"
    #include "HelloDll.h"
    #include "iostream"
    
    MYDLL_API void sayHello()
    {
        std::cout << "hello world";
    }

    2.新建一个控制台应用程序,将之前生成的dll放在调用程序生成的目录里,然后就可以在程序中如下面这样调用这个dll

    ConsoleApplication1:

    // ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include<Windows.h>  
    #include "iostream"
    typedef void(*funcptr)();
    int main()
    {
        using namespace std;
        const char* dllName = "HelloDll.dll";
        const char* funcName = "sayHello";
        HMODULE hDLL = LoadLibrary(_T(dllName));
        if (hDLL != NULL)
        {
            funcptr func = (funcptr)GetProcAddress(hDLL, funcName);
            if (func != NULL)
            {
                (*func)();
            }
            else
            {
                std::cout << "Cannot Find Function " << funcName << std::endl;
            }
        }
        else
        {
            std::cout << "Cannot Find " << dllName << std::endl;
        }
        getchar();
        return 0;
    }

     运行输出结果: Hello World

  • 相关阅读:
    常用的模板标签
    django的静态文件的引入
    模板路径的查找
    类型初始值设定项引发异常
    ASP.NET基础笔记
    ASP.NET 学习笔记
    【1】验证适配器
    同时安装vs2010和VS2012后IEnumerable<ModelClientValidationRule>编译错误
    跨窗体传值
    扩展方法
  • 原文地址:https://www.cnblogs.com/heben/p/5460202.html
Copyright © 2020-2023  润新知