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

  • 相关阅读:
    cf 559a **
    poj 2599 单调栈 ***
    Unicode(UTF-8, UTF-16)令人混淆的概念
    Uber Go 语言编程规范
    深入理解 Go Channel
    如何使用 GZIP 来优化网站
    跨域资源共享 CORS 详解 [转载]
    使用dig查询DNS解析过程
    golang 实现简单DNS服务器
    一文看懂JS的异步
  • 原文地址:https://www.cnblogs.com/heben/p/5460202.html
Copyright © 2011-2022 走看看