程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Visual Studio 中是否有影响自定义 DLL 函数创建文件的位置的设置?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Visual studio 中是否有影响自定义 DLL 函数创建文件的位置的设置??

开发过程中遇到Visual studio 中是否有影响自定义 DLL 函数创建文件的位置的设置?的问题如何解决?下面主要结合日常开发的经验,给出你关于Visual studio 中是否有影响自定义 DLL 函数创建文件的位置的设置?的解决方法建议,希望对你解决Visual studio 中是否有影响自定义 DLL 函数创建文件的位置的设置?有所启发或帮助;

我编写了自定义 DLL,其中包含一个脚本语言的函数,可与 pdf 一起使用。当我调用我的 create 函数时,它可以工作,但它会在我的 C++ 项目调试目录中创建 pdf。我没有指定一个完全合格的路径作为即时测试。是否有可以在 Visual studio 中控制它并以某种方式在 dll 中的设置?如果我指定一个完整的路径,它会返回一个错误,假设因为它是从我的项目文件夹中开始的......有人知道吗?

@H_449_5@mV_EL_FunctionParameter pdfApCreate_parameters[] = {
    { "filename",8,EPF_norMAL },{ "LOCATIOn",EPF_norMAL }
};
__declspec(dllexport) voID bi_pdfApCreate(mvProgram prog,mvVariableHash parameters,mvVariable returnvalue,void **)
{
    int ret = LoadApWDll();
    if (!ret)
    {
        mvVariable_SETVALue_Integer(returnvalue,33333);
        return;
    }


    // inputS
    int filename_len;
    const char* filename;
    int LOCATIOn;

    // OUTPUT
    long ID;

    // Not needed anymore,for a depricated Miva API function.
    //char* resolved_filename = NulL;
    //int resolved_filename_len;

    filename = mvVariable_Value(mvVariableHash_Index(parameters,0),&filename_len);
    LOCATIOn = file_LOCATIOn(mvVariableHash_Index(parameters,1));
    //mvfile_Resolve(prog,LOCATIOn,filename,filename_len,&resolved_filename,&resolved_filename_len);
    
    ID = pApCreate((char*)fileName);
    if (ID) { mvProgram_Free(prog,const_cast<char*>(fileName)); }
    mvVariable_SETVALue_Integer(returnvalue,ID);

}

这是人们离开的地方。这是为 Miva 脚本语言创建函数。这是我用来构建它的自定义 API。 这是 Miva Mia 的图片。

Visual Studio 中是否有影响自定义 DLL 函数创建文件的位置的设置?

解决方法

看起来您正在写入 Win32(相对于 .Net 或 .Net Core)。

推荐“硬编码路径”——这太脆弱了。

相反,我会建议以下之一:

  • 从环境变量中读取路径
  • 使用相对于 .exe 的路径

在 Win32 中获取路径:

TCHAR szFilename[MAX_PATH];
GetModuleFilename(NULL,szFilename,MAX_PATH)

获取 .Net 中的路径:

System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecuTingAssembly().GetName().CodeBasE)

如果您选择使用环境变量:

  • 可以在 Visual studio 中设置变量
  • 对于“生产”,您可能会从 .bat 文件中调用 .exe,并在 .bat 文件中设置环境变量

另一种选择是让 .exe 确定路径,并将路径字符串作为函数参数传递给 .dll :)

,

Visual studio 有一个指定 Working Directory 的设置,但仅在从 Visual studio 运行时使用。

但是,您永远不要依赖当前的工作目录。指定完整路径。

请显示“返回错误”的代码 - 这可能是您的错。

大佬总结

以上是大佬教程为你收集整理的Visual Studio 中是否有影响自定义 DLL 函数创建文件的位置的设置?全部内容,希望文章能够帮你解决Visual Studio 中是否有影响自定义 DLL 函数创建文件的位置的设置?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。