Deployment 应用程序在Visual studio上运行,但不直接运行exe,为什么?

Deployment 应用程序在Visual studio上运行,但不直接运行exe,为什么?,deployment,Deployment,这段代码在VisualStudio2010(调试/发布版)上运行良好,使用dll函数的返回值(ctrl+F5获得输出)效果非常好 现在的问题是,当我直接从调试文件夹运行这个exe时,它并没有返回值 问题是什么 typedef int (*One)(const char *); HMODULE hModule; One gpfSN = NULL; int y = 0; const char *cr = "xyz"; hModule = LoadLibrary(L"send.dll"

这段代码在VisualStudio2010(调试/发布版)上运行良好,使用dll函数的返回值(ctrl+F5获得输出)效果非常好

现在的问题是,当我直接从调试文件夹运行这个exe时,它并没有返回值

问题是什么

typedef int (*One)(const char *);
HMODULE hModule;
One gpfSN = NULL;
int y = 0;
const char *cr = "xyz";
        hModule = LoadLibrary(L"send.dll");
    if (hModule != NULL)    
    {
        gpfSN = (One)GetProcAddress(hModule, "GetData");
    }

    if (gpfSN != NULL) 
    {
        CString t;
        y = (*gpfSN)(cr);
        t.Format(_T("%d"), y);
        m_Value.SetWindowTextW(t);
    }
    if (hModule != NULL) 
    {
    ::FreeLibrary(hModule);
    }

您应该添加一些错误报告,因为现在所有的错误都被默默地忽略了

if(hModule!=NULL)
{
gpfSN=(一个)GetProcAddress(hModule,“GetData”);
}
其他的
{
自动常量最后一个错误(::GetLastError());
m_Value.SetWindowTextW(L“LoadLibrary调用失败”);//TODO打印错误代码
}

显示“LoadLibrary调用失败”是否未加载库?在Visual studio上使用相同的路径,路径问题?您应该检查错误代码。你们有send.dll吗?在系统变量中设置dll路径后,它从调试文件夹开始工作。但是现在,当将exe复制到另一个文件夹时,同样的老问题应该是126代码错误。您的exe和L“send.dll”是否位于同一文件夹中?我认为两者不应该位于同一文件夹中。