Tag: C#的

有没有一种更好的方式来expression嵌套在C ++中的名称空间

我从C ++切换到Java和C#,并认为名称空间/包的使用在那里(结构良好)要好得多。 然后,我回到C ++,并尝试以相同的方式使用名称空间,但在头文件中所需的语法是可怕的。 namespace MyCompany { namespace MyModule { namespace MyModulePart //eg Input { namespace MySubModulePart { namespace … { public class MyClass 以下对我来说似乎也很奇怪(为了避免深度缩进): namespace MyCompany { namespace MyModule { namespace MyModulePart //eg Input { namespace MySubModulePart { namespace … { public class MyClass { 有没有更短的方式来expression上述的东西? 我缺less类似的东西 namespace MyCompany::MyModule::MyModulePart::… { public class MyClass 更新 […]

如何在Visual C ++中构build导入库(.lib)和DLL?

我想有一个单一的Visual Studio项目,build立一个DLL文件和一个导入库(.lib)文件。 (导入库是一个静态链接的库,负责在使用它的其他项目中加载该DLL文件)。 所以我去了Visual Studio C ++ 2008速成版,创build了一个types为Class Library的New Project,并将“Configuration Type”设置为“Dyanamic Library(.dll)”。 但是当我构build解决scheme时,我看到的唯一相关的输出文件是一个DLL文件; 我没有看到任何LIB文件生成。 我查看了项目目录和所有子目录(Release和Debug)。 我相信可以同时构build一个LIB和一个DLL文件,因为在MSDN上它说“链接器在build立DLL时创build导入库”。 此外, 本网站的另一个用户正在使用Visual C ++同时创buildLIB和DLL文件 。 那我该怎么做呢?

boost :: unique_lock vs boost :: lock_guard

我不太了解这两个锁类之间的区别。 在boost文档中,据说, boost::unique_lock没有自动实现locking。 这是否意味着unique_lock和lock_guard之间的主要区别是unique_lock必须显式调用lock()函数?

简单委托(委托)与组播委托

我已经阅读了许多文章,但是我仍然不清楚我们通常创build的普通代表和多播代表之间的区别。 public delegate void MyMethodHandler(object sender); MyMethodHandler handler = new MyMethodHandler(Method1); handler += Method2; handler(someObject); 上面的委托MyMethodHandler将调用这两个方法。 现在,组播代表进来了。我已经读了他们可以调用多种方法,但是我担心对代表的基本理解是不正确的。

虚拟,覆盖,新和密封覆盖之间的区别

在OOP的一些概念之间我很困惑: virtual , override , new和sealed override 。 任何人都可以解释不同之处 我很清楚,如果要使用派生类方法,可以使用override关键字,以便基类方法将被派生类重写。 但我不确定new sealed override 。

Visual Studio 8中的程序集引用的Aliases属性有什么用处?

当我在Visual Studio 8中向项目添加一个程序集引用时,该引用的Aliases属性被设置为“global”。 什么是这个属性的好处,为什么它设置为全球? MSDN告诉我,这是程序集的别名列表,但不是为什么我可能想要使用这个属性,或者为什么大多数被别名为“全局”。 MSDN参考

如何在Visual Studio 2010中进行debugging时以pipe理员身份运行应用程序?

我有ac#应用程序,我必须有读/写访问C驱动器的根目录。 我意识到我可以编译代码,并以pipe理员身份运行可执行文件,它的工作原理。 但我需要debugging它,我不确定如何在VS2010中启动应用程序。 我曾尝试添加: <requestedExecutionLevel level="asInvoker" uiAccess="true" /> 我的清单,但我仍然得到访问被拒绝的错误。 这是失败的代码行: MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\somemapnamefile.data", System.IO.FileMode.OpenOrCreate, "somemapname", 1000); 现在我有一个工作,但我想知道未来。

包围返回值的括号

通常在ANSI C代码中,我可以看到圆括号包含单个返回值。 喜欢这个:- int foo(int x) { if (x) return (-1); else return (0); } 为什么在这些情况下使用()返回值呢? 有任何想法吗? 我看不出有什么理由。

如何将Disposefunction添加到C#UserControl?

我有一个实现UserControl的类。 在.NET 2005中,Dispose方法在MyClass.Designer.cs的部分类文件中自动创build,如下所示: protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } 如果我想添加我自己的Disposefunction,我会把它放在哪里? 由于这个文件是生成的,我不想在这里添加代码,并冒着被风吹走的风险。

从C ++代码调用C函数

我有一个C函数,我想从C ++调用。 我不能使用“ extern "C" void foo() ”方法,因为C函数无法使用g ++编译。 但它使用gcc编译得很好。 任何想法如何从C ++调用函数?