c# - 如果我的程序正在将 dll 文件复制到临时目录,我是否需要特定权限?

标签 c# c++ permissions pinvoke loadlibrary

问题: 我想知道我是否需要请求特定权限和/或做一些额外的事情以使其“值得信赖”,以防我的程序将一个 dll 文件多次复制到临时目录。如果我这样做,该程序是否会被反病毒软件识别为恶意软件?

示例代码:

if (needANewCopyOfTheDll)
{
    string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".dll";
    // Here, copy my dll to the new file.
}

但为什么呢?我有一个用 C++ 编写的静态库,它有全局变量、初始化过程和许多其他东西。我想要该库的不同实例,并且我只能在内存中加载一次相同的 dll。因此,我正在考虑将库包装在一个实例类中,当我需要它的一个新实例时,只需将 dll 文件复制到临时目录并使用 LoadLibrary() 函数为其获取一个新句柄在 kernel32.dll 中

最佳答案

复制到临时目录不需要任何特殊权限。你照着做就行了,应该没问题。许多程序都这样做。

您的问题并不清楚您的软件是否被视为恶意软件。如果是,我怀疑是因为您正在从临时目录加载 dll。

不管怎样,你所做的听起来像是一个相当大的 hack。您应该重写您的库以不使用全局变量。

关于c# - 如果我的程序正在将 dll 文件复制到临时目录,我是否需要特定权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14915411/

相关文章:

c# - 如何使用 MVVM 更改 WPF 中的 UI 按钮

c# - 如何为不是从 MarshalByRefObject 派生的远程对象创建代理?

c++ - 运行 Qt hello world 时进程退出代码 0xC0000135

permissions - 什么阻止设备文件被执行?

c# - Excel 自动化,如何检测用户是否在 Excel 工作表中运行宏或单击 'Run Macro' CommandBarControl?

c# - 如何在 MonoTouch 中检测 iPhone 是否处于静音模式

c++ - 功能优化通

C++:有符号 64 位整数中两个无符号 64 位整数的差

java - 设置目录的读取权限

permissions - IBM U2(UniVerse 10.2)-创建模式-方法