zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    无题
    一周损兵又折将
    防火墙安装配置(准备)
    徐州项目顺利验收
    悲惨的圣诞节
    [原]防火墙安装配置(日志)
    [转]有关加薪申请资料
    解决FireFox下XML对象转化成字符串
    ASP.NET Application and Page Life Cycle(asp.net生命周期)
    C# 利用反射动态创建对象[转]
  • 原文地址:https://www.cnblogs.com/heben/p/5460202.html
Copyright © 2011-2022 走看看