Tag: C#的

有没有一个好的方法来转换BitmapSource和位图?

据我可以告诉唯一的方法来从BitmapSource转换为位图是通过不安全的代码…像这样(来自Lesters WPF博客 ): myBitmapSource.CopyPixels(bits, stride, 0); unsafe { fixed (byte* pBits = bits) { IntPtr ptr = new IntPtr(pBits); System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap( width, height, stride, System.Drawing.Imaging.PixelFormat.Format32bppPArgb,ptr); return bitmap; } } 做相反的事情: System.Windows.Media.Imaging.BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); 在框架中有一个更简单的方法吗? 那它不在的原因是什么(如果不是的话)? 我会认为这是相当有用的。 我需要它的原因是因为我使用AForge在WPF应用程序中执行某些图像操作。 WPF想要显示BitmapSource / ImageSource,但是AForge在位图上工作。

如何正确地replace全局新增和删除操作符

首先,在SO上至less有4-5个话题有类似的话题。 我读了他们每个人,我不觉得他们真的帮助我解决这个具体问题。 如果有人发现重复的问题,我表示歉意。 在发布之前,我已经完成了我的search工作,因为这似乎是一个很常见的问题。 我在Windows 7上使用Visual Studio .NET 2003。 我有我自己的重载新/删除指向我自己的自定义调用malloc()和free()进行诊断。 我的新/删除重载是在一个头文件,我已经包含在几个文件。 问题是,代码基础是非常意大利面条,并没有简单的方法来确保这些重载被一切使用。 第三方库包含黑箱。 我们也到处使用STL。 在我的testing中,我发现STL仍然将呼叫混合到我自己的新/删除和标准的MSVC新/删除呼叫中。 将我的头文件包含在成千上万的其他文件中似乎并不现实,这只需要很长时间。 任何人都可以提供一些关于如何适当和有效地重载全局新/

获取XPath到XElement?

我在文档中有一个XElement。 鉴于XElement(和XDocument?),是否有扩展方法来获得它的完整(即绝对,例如/root/item/element/child )XPath? 例如myXElement.GetXPath()? 编辑:好吧,看起来像我忽视了一些非常重要的东西。 哎呦! 元素的索引需要考虑在内。 请参阅我的最后一个答案提出更正解决scheme。

std :: flush如何工作?

有人可以请解释(最好使用纯英文)如何std::flush作品? 它是什么? 你什么时候冲一个小溪? 它为什么如此重要? 谢谢。

为什么C#不推断我的generics?

我有很多有趣的(有趣的)通用的方法。 在大多数情况下,C#types推理是足够聪明的,以找出什么generics参数必须使用我的generics方法,但现在我有一个devise,C#编译器不成功,而我相信它可以成功find正确的types。 任何人都可以告诉我,在这种情况下,编译器是否有点愚蠢,还是有一个非常明确的理由,为什么它不能推断我的generics参数? 代码如下: 类和接口定义: interface IQuery<TResult> { } interface IQueryProcessor { TResult Process<TQuery, TResult>(TQuery query) where TQuery : IQuery<TResult>; } class SomeQuery : IQuery<string> { } 一些不能编译的代码: class Test { void Test(IQueryProcessor p) { var query = new SomeQuery(); // Does not compile 🙁 p.Process(query); // Must explicitly write all arguments p.Process<SomeQuery, string>(query); } […]

错误LNK2038:检测到“_MSC_VER”不匹配:值“1600”与CppFile1.obj中的值“1700”不匹配

我正在将我的项目从VS2010转换为VS2012.But在某些项目中出现_MSC_VER链接器错误。 通过谷歌漫长的冲浪后,我发现这个问题是由于在VS2010中创build的库链接到VS2012。 我怎样才能找出哪个项目导致错误? 在这里我引用了这个错误: Error 6 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile2.obj) Projectname2 Error 15 error LNK2001: unresolved external symbol "private: static void __cdecl std::locale::facet::_Facet_Register(class std::locale::facet *)" (?_Facet_Register@facet@locale@std@@CAXPAV123@@Z) D:\ProjectLocation\Projectname1.lib(CppFile3.obj) Projectname2 Error 13 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj […]

为什么我不能取消一个int作为小数?

我有一个IDataRecord reader ,我正在检索一个小数,如下所示: decimal d = (decimal)reader[0]; 由于某种原因,这会抛出一个无效的转换exception,说“指定的转换无效”。 当我做reader[0].GetType()它告诉我,它是一个Int32。 据我所知,这不应该是一个问题…. 我已经testing了这个片段,这工作得很好。 int i = 3750; decimal d = (decimal)i; 这让我挠脑袋,想知道为什么它不能将读取器中包含的int作为十进制数来打开。 有谁知道为什么这可能会发生? 我错过了些微妙的东西吗?

用stringreplace第一个出现的模式

可能重复: 如何在.NET中replacestring的第一个实例 ? 比方说,我有string: string s = "Hello world."; 我怎样才能取代第一个在Hello我们说Foo这个词? 换句话说,我想最终: "HellFoo world." 我知道如何取代所有的o,但我想只取代第一个

如何将文本追加到C ++的文本文件?

如何将文本追加到C ++的文本文件? 创build新的if不存在并追加(如果存在)。

在C中生成随机数

在search关于在CI中生成随机数的教程时发现了这个主题 当我尝试使用不带参数的rand()函数时,我总是得到0.当我尝试使用带有参数的rand()函数时,我总是得到值41.每当我尝试使用arc4random()和random()函数,我得到一个LNK2019错误。 以下是我所做的: #include <stdlib.h> int main() { int x; x = rand(6); printf("%d", x); } 这段代码总是生成41.我在哪里出错? 我正在运行Windows XP SP3并使用VS2010命令提示符作为编译器。