exe和dll放到不同目录中的方法

1、设置dll延迟加载

属性->配置属性->链接器->输入->延迟加载的Dll-> 添加MyDll.dll

属性->配置属性->链接器->输入->附加依赖项-> 添加MyDll.lib

属性->配置属性->链接器->高级->卸载延迟加载的dll-> 是

属性->配置属性->c/c++->预处理器-》预处理器定义,添加_WIN32_WINNT=0x0502;否则SetDllDirectory失败

//代码中加入SetDllDirectory

void CJWCTApp::SetDllPath()
{
    //exe与dll不在同一目录下,需要设置延迟加载,
    //设置延迟加载的dll的路径
    CString str = theApp.m_strExePath + _T("\\dll\\");
    SetDllDirectory(str);
    str = theApp.m_strExePath + _T("\\dll\\basler\\");
    SetDllDirectory(str);
}

2、引入头文件即可

#define _WIN32_WINNT 0x0502 // need for SetDllDirectory
#include <stdio.h>
#include <Windows.h>
#include "Wrapper.h"
 
void main()
{
    SetDllDirectory(L"bin\\");//wrapper.dll在当前目录的bin文件夹中
    TestWrapper();
    /*HMODULE h = LoadLibrary(L"Wrapper.dll");
    if(h)
    {
        typedef void (*PTest)();
        PTest p = (PTest)GetProcAddress(h, "TestWrapper");
        if(p)
        {
            p();
            printf("\n-------------\nok!!!\n");
        }
        else
        {
            printf("\nGetProcAddress('TestWrapper') failed");
        }
    }
    else
        printf("\nLoad Wrapper.dll failed");*/
    system("pause");


原文链接:https://blog.csdn.net/fuhanghang/article/details/122219588

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值