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

  • 相关阅读:
    将博客搬至CSDN
    HDU1175 + HDU1728+BFS转弯
    HDU1401 BFS
    HDU1401 双广BFS
    分布式一致性
    GFS架构分析
    云计算资源分享与下载
    mysql导入导出数据方法
    缓存设计的一些思考
    HBase性能优化方法总结
  • 原文地址:https://www.cnblogs.com/heben/p/5460202.html
Copyright © 2011-2022 走看看