Tag: C#的

Image.Save(..)抛出一个GDI +exception,因为内存stream已closures

我有一些我想保存为图像的二进制数据。 当我尝试保存图像时,如果用于创build图像的内存stream在保存之前closures,则会引发exception。 我这样做的原因是因为我dynamic创build图像,因此我需要使用内存stream。 这是代码: [TestMethod] public void TestMethod1() { // Grab the binary data. byte[] data = File.ReadAllBytes("Chick.jpg"); // Read in the data but do not close, before using the stream. Stream originalBinaryDataStream = new MemoryStream(data); Bitmap image = new Bitmap(originalBinaryDataStream); image.Save(@"c:\test.jpg"); originalBinaryDataStream.Dispose(); // Now lets use a nice dispose, etc… Bitmap2 image2; using (Stream […]

C#构造函数链? (怎么做?)

我知道这应该是一个超级简单的问题,但我一直在为这个概念挣扎。 我的问题是,你如何链接在C#构造函数? 我在我的第一个OOPclass,所以我只是在学习。 我不明白构造函数链如何工作或如何实现它,甚至为什么比没有链的构造函数更好。 我会感谢一些例子的解释。 那么如何链接他们呢? 我知道两个它是: public SomeClass this: {0} public SomeClass { someVariable = 0 } 但是你怎么用三,四等等呢? 再次,我知道这是一个初学者的问题,但我很难理解这一点,我不知道为什么。

可变模板包扩展

我正在尝试学习可变参数模板和函数。 我不明白为什么这个代码不能编译: template<typename T> static void bar(T t) {} template<typename… Args> static void foo2(Args… args) { (bar(args)…); } int main() { foo2(1, 2, 3, "3"); return 0; } 当我编译失败,错误: 错误C3520:“args”:参数包必须在此上下文中展开 (在函数foo2 )。

何时使用ref,何时不需要在C#中

我有一个对象,是我在程序的内存状态,也有一些其他工作人员的function,我传递对象来修改状态。 我一直在通过工人职能通过它。 但是我碰到以下function。 byte[] received_s = new byte[2048]; IPEndPoint tmpIpEndPoint = new IPEndPoint(IPAddress.Any, UdpPort_msg); EndPoint remoteEP = (tmpIpEndPoint); int sz = soUdp_msg.ReceiveFrom(received_s, ref remoteEP); 它让我感到困惑,因为received_s和remoteEP正在从函数中返回东西。 为什么remoteEP需要一个ref并且received_s不需要? 我也是ac程序员,所以我有一个问题得到指出我的头。 编辑:它看起来像在C#中的对象是指向引擎盖下的对象的指针。 所以当你传递一个对象到一个函数时,你可以通过指针修改对象内容,唯一传递给函数的是指向对象的指针,所以对象本身不被复制。 如果你希望能够切换或者在函数中创build一个类似于双指针的新对象,你可以使用ref或者out。

如何让HttpClient与请求一起传递证书?

我有一个Web应用程序(托pipe在IIS中),与Windows服务交谈。 Windows服务使用ASP.Net MVC Web API(自托pipe),因此可以使用JSON通过HTTP进行通信。 Web应用程序被configuration为进行模仿,其思想是向Web应用程序发出请求的用户应该是Web应用程序用来向服务发出请求的用户。 结构如下所示: (以红色突出显示的用户是在下面的示例中引用的用户。) Web应用程序使用HttpClient向Windows服务发出请求: var httpClient = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }); httpClient.GetStringAsync("http://localhost/some/endpoint/"); 这会向Windows服务发出请求,但不会正确传递凭据(该服务将用户报告为IIS APPPOOL\ASP.NET 4.0 )。 这不是我想要发生的事情 。 如果我改变上面的代码来改为使用WebClient ,则用户的凭据将被正确传递: WebClient c = new WebClient { UseDefaultCredentials = true }; c.DownloadStringAsync(new Uri("http://localhost/some/endpoint/")); 使用上面的代码,服务将用户报告为向Web应用程序提出请求的用户。 我在做什么错误的HttpClient实现导致它不正确地传递凭据 (或者它是一个与HttpClient的错误)? 我想使用HttpClient的原因是它有一个与Tasks很好地配合的asynchronousAPI,而WebClient的asyc API需要用事件来处理。

检测标准input是一个terminal或pipe道?

当我从terminal执行“ python ”而没有参数的时候,它会popupPython交互式shell。 当我从terminal执行“ cat | python ”时,它不会启动交互模式。 不知何故,没有得到任何input,它已经检测到它连接到pipe道。 我如何做类似的检测在C或C + +或Qt?

如何在Visual Studio 2012中包含库?

我从前几天开始学习C ++,并希望获得一些数据来使它更有趣。 我发现了一个名为Unirest的强大的C ++库 ,可以帮助我从许多API获取数据,并在练习之后进行基础知识:) 我不知道如何将库包含到我的项目中。 我喜欢一些关于如何做的video,所以我刚刚创build了libs文件夹(就像我在PHP编程时一样),并且复制了库文件。 将头文件UNIRest.h包含到我的源文件中,并将libs目录添加到项目属性 – configuration属性 – VC +目录中的 VS +目录选项中。 一切都还好 但是当我打开头文件UNIRest.h问题出现了: #import "UNIHTTPRequest.h" #import "UNIHTTPRequestWithBody.h" #import "HttpRequest/UNISimpleRequest.h" #import "HttpRequest/UNIBodyRequest.h" #import "HttpResponse/UNIHTTPBinaryResponse.h" #import "HttpResponse/UNIHTTPJsonResponse.h" #import "HttpResponse/UNIHTTPStringResponse.h" 所有这些macros都加下划线,编译失败,消息: fatal error C1083: Cannot open type library file: 'libs\unirest\unihttprequest.h': Error loading type library/DLL. 你可以帮我吗? 希望这不只是一个愚蠢的问题,因为我试图使整个下午工作:(

static_cast <>和C风格铸造有什么区别?

有什么理由更喜欢static_cast<>比C风格铸造? 他们是否等同? 他们有什么样的速度差异?

free和malloc如何在C中工作?

我试图找出如果我试图释放一个“从中间”的指针会发生什么,例如,看看下面的代码: char *ptr = (char*)malloc(10*sizeof(char)); for (char i=0 ; i<10 ; ++i) { ptr[i] = i+10; } ++ptr; ++ptr; ++ptr; ++ptr; free(ptr); 我得到一个未处理的exception错误信息的崩溃。 我想知道为什么和如何自由工作,以便我不仅知道如何使用它,而且能够理解奇怪的错误和exception,并更好地debugging我的代码 非常感谢

如何在只有protected或private构造函数的类上调用:: std :: make_shared?

我有这个代码不起作用,但我认为这个意图很明显: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); } 但是当我编译它时,我得到这个错误: g++ -std=c++0x -march=native -mtune=native -O3 -Wall testmakeshared.cpp In file included from /usr/lib/gcc/x86_64-redhat-linux/4.6.1/../../../../include/c++/4.6.1/bits/shared_ptr.h:52:0, from /usr/lib/gcc/x86_64-redhat-linux/4.6.1/../../../../include/c++/4.6.1/memory:86, from testmakeshared.cpp:1: […]