小编Bri*_*art的帖子

C#项目设置"允许不安全的代码"的实际功能是什么

我想知道C#项目设置"允许不安全代码"是否仅适用于项目本身的不安全C#代码,还是在链接本机C++ DLL时是否需要设置此选项?如何链接自身链接到本机DLL的托管DLL?这个选项在引擎盖下真正做了什么?

c# dll interop unsafe native

6
推荐指数
3
解决办法
4106
查看次数

可以提升文件系统更改文件的只读属性吗?

有没有办法使用boost文件系统库将文件的属性从只读更改为读写?如果没有,那么在Windows上使用Microsoft的C++实现此目的的下一个最佳方法是什么?

filesystems attributes boost

6
推荐指数
1
解决办法
2607
查看次数

安装程序更改PATH变量,更改不会显示在命令外壳中

我向安装程序添加了一个自定义安装操作,以将我的一个安装目录添加到System PATH环境变量中.运行安装程序后,PATH变量反映了更改(当我通过Control Panel :: System applet访问它时),但是当我启动一个新的命令shell时,PATH变量不会反映更改.有没有我没做的事,导致这个?

environment windows-installer custom-action path

5
推荐指数
1
解决办法
3588
查看次数

在C++/CLI中将std :: vector <> :: iterator转换为.NET接口

我正在包装一个本机C++类,它具有以下方法:

class Native
{
    public:
    class Local
    {
        std::string m_Str;
        int m_Int;
    };

    typedef std::vector<Local> LocalVec;
    typedef LocalVec::iterator LocalIter;

    LocalIter BeginLocals();
    LocalIter EndLocals();

    private:
        LocalVec m_Locals;
};
Run Code Online (Sandbox Code Playgroud)

1)表示同一种界面的".NET方式"是什么?返回数组<>的单个方法?数组<>泛型是否有迭代器,以便我可以实现BeginLocals()和EndLocals()?

2)在.NET包装器中是否应将Local声明为值结构

我真的很想代表带有.NET风格的包装类,但我对托管世界并不陌生 - 这种类型的信息令谷歌感到沮丧......

.net arrays c++-cli vector marshalling

5
推荐指数
1
解决办法
6683
查看次数

在 C++/CLI 包装类中翻译异常的最佳实践

我正在为抛出异常的现有本机类编写一个 .NET 包装类。在本机 C++ 异常和托管异常之间进行转换的最佳实践是什么?一对一地捕获并重新抛出(例如 std::invalid_argument -> System.System.ArgumentException)?是否已经在某处绘制了映射?

.net error-handling c++-cli exception

5
推荐指数
1
解决办法
4335
查看次数

如何从托管DLL获取可执行文件路径

我有一个托管DLL(用C++/CLI编写),它包含一个C#可执行文件使用的类.在类的构造函数中,我需要访问引用DLL的可执行文件的完整路径.在实际的应用程序中,我知道我可以使用Application对象来执行此操作,但是如何从托管DLL执行此操作?

dll executable c++-cli path

4
推荐指数
2
解决办法
6444
查看次数

Boost ::信号存储器访问错误

我正在尝试使用boost :: signal来实现一个回调机制,即使是最简单的库使用,我也会在boost :: signal代码中获得内存访问断言.我把它简化为这段代码:

#include <boost/signal.hpp>

typedef boost::signal<void (void)> Event;

int main(int argc, char* argv[])
{

    Event e;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑:这是使用Visual Studio 2008 w/SP1编译的Boost 1.36.0.Boost :: filesystem,像boost :: signal也有一个必须链接的库,它似乎工作正常.我相信,我使用的所有其他boost库都只是标题.

c++ boost-signals

4
推荐指数
1
解决办法
1408
查看次数

设置WPF依赖项属性而不触发事件

我需要在我的代码中的控件(Slider.Value)上设置依赖项属性,而不会触发ValueChanged事件(因为我设置了值,而不是用户).在WPF中处理这种情况的最佳方法是什么?

为了澄清,我想要做的是将WPF滑块连接到WinForms用户控件.目前在我的应用程序中,我有一个ValueChanged事件处理程序,它通过方法调用将滑块值传递给WinForms控件.WinForms控件(实际上是本机OpenGL窗口的包装器)需要能够根据它的内部计算动态更改滑块.为此,我使用滑块的抽象(ISlider),我在我的应用程序中实例化该滑块的WPF风格,并通过WinForms用户控件上的.NET属性将句柄传递给WinForms控件.所有这一切当前都在工作,只是当内部逻辑决定滑块需要改变时,它调用ISlider :: SetPos(),然后改变WPF滑块,然后在滑块上触发ValueChanged事件,并且该事件的处理程序提取滑块的位置并将其传递给WinForms控件,该控件首先发起事件.ligaz和Alan Le的建议似乎都应该有效,但我不确定我是否会以最好的方式解决这个问题.

c# wpf events dependency-properties

2
推荐指数
2
解决办法
6396
查看次数