Tag: C#的

在“任何CPU”.NET程序集上强制执行x86 CLR

在.NET中,“平台目标:任何CPU”编译器选项允许.NET程序集在x64机器上以64位运行,在x86机器上以32位运行。 也可以使用“Platform Target:x86”编译器选项强制程序集在x64机器上作为x86运行。 是否有可能使用“任何CPU”标志运行程序集,但确定它是否应该在x86或x64 CLR中运行? 正常情况下,这个决定是由CLR / OS Loader(根据我的理解)根据底层系统的位数来做出的。 我正在尝试编写一个C#.NET应用程序,它可以与其他正在运行的进程交互(读入:注入代码)。 x64进程只能注入到其他x64进程中,并且与x86一样。 理想情况下,我想利用JIT编译和Any CPU选项来允许单个应用程序用于注入x64或x86进程(在x64机器上)。 这个想法是,应用程序将被编译为任何CPU 。 在x64机器上,它将以x64运行。 如果目标进程是x86,则应该重新启动自己,强制CLR将其作为x86运行。 这可能吗?

如何将证书添加到WebClient(C#)?

我知道向HttpWebRequest添加证书非常简单。 但是,我还没有find一种方法来使用WebClient做等效。 基本上,我想用WebClient发送一个具有特定证书的POST。 你将如何使用WebClient完成这个确切的代码: var request = (HttpWebRequest) WebRequest.Create("my-url"); request.Method = "POST"; request.ClientCertificates.Add(new X509Certificate()); //add cert

在C ++中,构造函数和析构函数可以是内联函数吗?

VC ++使得在类声明内联函数中实现的函数成为可能。 如果我按如下方式声明Foo类,那么CONSTRUCTOR和DESTRUCTOR内联函数是什么? class Foo { int* p; public: Foo() { p = new char[0x00100000]; } ~Foo() { delete [] p; } }; { Foo f; (f); }

在c#中退出命令行参数

简洁版本: 用引号包裹参数并转义\和" ? 代码版本 我想通过使用ProcessInfo.Arguments将命令行参数string[] args传递给另一个进程。 ProcessStartInfo info = new ProcessStartInfo(); info.FileName = Application.ExecutablePath; info.UseShellExecute = true; info.Verb = "runas"; // Provides Run as Administrator info.Arguments = EscapeCommandLineArguments(args); Process.Start(info); 问题是,我得到的参数作为一个数组,并且必须合并成一个单一的string。 可以制造出一些论据来欺骗我的程序。 my.exe "C:\Documents and Settings\MyPath \" –kill-all-humans \" except fry" 根据这个答案,我创造了以下function来逃避一个单一的论点,但我可能错过了一些东西。 private static string EscapeCommandLineArguments(string[] args) { string arguments = ""; foreach (string arg in […]

__declspec(dllimport)真的意味着什么?

我看到了这样的Qt源代码: class Q_CORE_EXPORT QBasicAtomicInt { public: … }; 哪个Q_CORE_EXPORTmacros定义如下: define Q_DECL_IMPORT __declspec(dllimport) 那么__declspec(dllimport)是什么意思?

声明int的数组

这两个声明有什么区别? int x[10]; 与 int* x = new int[10]; 我想前面的声明(就像后面的声明)是一个指针声明,两个variables都可以被视为相同的。 这是否意味着它们本质上是一样的?

entity framework存储过程表值参数

我试图调用一个接受表值参数的存储过程。 我知道,这不是直接支持在entity framework,但从我的理解,你可以使用ExecuteStoreQuery命令closures的ObjectContext 。 我有一个通用的entity framework库,我有以下ExecuteStoredProcedure方法: public IEnumerable<T> ExecuteStoredProcedure<T>(string procedureName, params object[] parameters) { StringBuilder command = new StringBuilder(); command.Append("EXEC "); command.Append(procedureName); command.Append(" "); // Add a placeholder for each parameter passed in for (int i = 0; i < parameters.Length; i++) { if (i > 0) command.Append(","); command.Append("{" + i + "}"); } return […]

静态链接libstdc ++:任何陷阱?

我需要在Ubuntu 12.10上使用GCC 4.7的libstdc ++部署一个C ++应用程序到运行Ubuntu 10.04的系统,该系统带有一个相当老版本的libstdc ++。 目前,我正在编译-static-libstdc++ -static-libgcc ,正如本博文所build议的: 静态链接libstdc ++ 。 作者警告,静态编译libstdc ++时不要使用任何dynamic加载的C ++代码,这是我还没有检查过的东西。 不过,现在一切似乎都进展顺利:我可以使用Ubuntu 10.04上的C ++ 11function,这正是我以前的做法。 我注意到这篇文章是从2005年开始的,也许从那以后有了很大变化。 它的build议还是最新的吗? 有什么潜在的问题我应该知道?

返回两个值,Tuple vs'out'和'struct'

考虑一个返回两个值的函数。 我们可以写: // Using out: string MyFunction(string input, out int count) // Using Tuple class: Tuple<string, int> MyFunction(string input) // Using struct: MyStruct MyFunction(string input) 哪一个是最佳实践,为什么?

我应该传入什么值TimeZoneInfo.FindSystemTimeZoneById(string)?

我想使用TimeZoneInfo.FindSystemTimeZoneById(String)方法,但我不知道用什么值作为input? 我在哪里可以得到FindSystemTimeZoneById所需的id的值列表?