Tag: C#的

如何清除浏览器caching浏览器后退button点击MVC4?

我知道这是在stackoverflow中的一个stream行的问题。 我经历了同样的问题,我无法为我find正确的答案。 这是我的注销控制器的行动结果 [Authorize] public ActionResult LogOut(User filterContext) { Session.Clear(); Session.Abandon(); Session.RemoveAll(); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1)); Response.Cache.SetNoStore(); FormsAuthentication.SignOut(); return RedirectToAction("Home", true); } 这不适合我。 我也尝试添加 – <meta http-equiv="Cache-Control" content="no-cache" /> <meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Expires" content="0"/> 这些都没有解决我的问题。

将C#中的string传递给C ++ DLL并返回最简单的例子

我正在尝试使用C#中的C ++ DLL传递string的绝对最简单的例子。 我的C ++看起来像这样: using std::string; extern "C" { string concat(string a, string b){ return a + b; } } 像一个头像 using std::string; extern "C" { // Returns a + b __declspec(dllexport) string concat(string a, string b); } 我的C#是 [DllImport("*****.dll", CallingConvention = CallingConvention.Cdecl)] static extern string concat(string a, string b); } 我打电话给:Console.WriteLine(concat(“a”,“b”)); 但是这给了一个System.AccessViolationException。 这看起来似乎是最微不足道的事情,但是我完全停留在这个问题上。 […]

将string拆分为多个分隔符

我有一些文本(有意义的文本或算术expression),我想把它分解成单词。 如果我有一个单独的分隔符,我会使用: std::stringstream stringStream(inputString); std::string word; while(std::getline(stringStream, word, delimiter)) { wordVector.push_back(word); } 我怎样才能把string分成几个分隔符的标记?

理解返回值优化和临时返回 – C ++

请考虑三个function。 std::string get_a_string() { return "hello"; } std::string get_a_string1() { return std::string("hello"); } std::string get_a_string2() { std::string str("hello"); return str; } 在所有这三种情况下RVO会被应用吗? 在上面的代码中返回一个临时值是否可以? 我相信这是可以的,因为我是以价值回报它,而不是返回任何参考。 有什么想法吗?

上证所,内在因素和调整

我用很多SSE编译器内在函数编写了一个3Dvector类。 一切正常,直到我开始安装具有3Dvector的类作为新成员。 我在发布模式下遇到了一些奇怪的崩溃,但是在debugging模式下却不是这样。 所以我读了一些文章,并认为我需要将拥有3Dvector类的实例的类也alignment到16字节。 所以我刚刚在类的前面添加了_MM_ALIGN16 ( _MM_ALIGN16 ( __declspec(align(16) ),如下所示: _MM_ALIGN16 struct Sphere { // …. Vector3 point; float radius }; 这似乎首先解决了这个问题。 但是在改变一些代码之后,我的程序又开始以奇怪的方式崩溃了。 我search了更多的networking,发现了一篇博客文章。 我尝试了作者恩斯特·霍特(Ernst Hot)为解决这个问题所做的工作。 我添加了新的和删除操作符到我的类,如下所示: _MM_ALIGN16 struct Sphere { // …. void *operator new (unsigned int size) { return _mm_malloc(size, 16); } void operator delete (void *p) { _mm_free(p); } Vector3 point; float […]

@(at)login文件path/string

可能重复: 什么是在.NET的string前的@ 我有以下代码: new Attachment(Request.PhysicalApplicationPath + @"pdf\" + pdfItem.Value) @符号做什么?

如何在没有中间拷贝的情况下在标准C中实现memmove?

从我的系统上的手册页: void * memmove(void * dst,const void * src,size_t len); 描述 memmove()函数将len字节从stringsrc复制到stringdst。 这两个string可能重叠 ; 副本总是在一个非破坏性的 方式。 从C99标准: 6.5.8.5比较两个指针时,结果取决于指向对象的地址空间中的相对位置。 如果两个指向对象或不完整types的指针指向同一个对象,或者两个指向同一个数组对象的最后一个元素,则它们相等。 如果指向的对象是同一个聚合对象的成员,则稍后声明的结构成员的指针比结构中较早声明的成员的指针要多,指向具有较大下标值的数组元素的指针比指向同一数组元素的指针具有较低的下标值。 所有指向同一联合对象的成员的指针相等。 如果expression式P指向数组对象的元素,并且expression式Q指向相同数组对象的最后一个元素,则指针expression式Q+1将比P 。 在所有其他情况下,行为是不确定的 。 重点是我的。 参数dst和src可以转换为指向char指针,以减轻严格的别名问题,但是可以比较指向不同块的两个指针,以便在指向内部时按照正确的顺序进行复制同一块? 显而易见的解决scheme是if (src < dst) ,但是如果src和dst指向不同的块,那么它是不确定的。 “未定义”意味着你甚至不应该假设条件返回0或1(这在标准的词汇中被称为“未指定”)。 另一种方法是if ((uintptr_t)src < (uintptr_t)dst)至less没有被指定,但是我不确定标准是否保证当src < dst被定义时,它相当于(uintptr_t)src < (uintptr_t)dst) 。 指针比较是从指针算术定义的。 例如,当我阅读第6.5.6节的内容时,在我看来,指针运算可能与uintptr_t运算的方向相反,也就是说,如果p是char*types, ((uintptr_t)p)+1==((uintptr_t)(p-1) 这只是一个例子。 一般来说,将指针转换为整数时似乎很less有保证。 这是一个纯粹的学术问题,因为memmove与编译器一起提供。 实际上,编译器作者可以简单地将未定义的指针比较为未指定的行为,或者使用相关的编译指令来强制编译器正确编译它们的memmove 。 例如, 这个实现有这个片段: if ((uintptr_t)dst < […]

一个C ++的Windows DLL如何被合并到一个C#应用程序的EXE?

我有一个Windows C#程序,使用C + + DLL的数据I / O。 我的目标是将应用程序部署为单个EXE。 有什么步骤来创build这样的可执行文件?

WinForms文本框中的button

做winforms文本框有任何使embedded式button,在框的结尾可能的属性? 就像Chrome地址栏中的collections夹button一样: 我在一些Excel表格中也看到了类似下面的内容: 编辑 我跟着Hans Passant的答案,增加了一个点击事件处理程序,它似乎工作正常: protected override void OnLoad(EventArgs e) { var btn = new Button(); btn.Size = new Size(25, textBoxFolder.ClientSize.Height + 2); btn.Location = new Point(textBoxFolder.ClientSize.Width – btn.Width, -1); btn.Cursor = Cursors.Default; btn.Image = Properties.Resources.arrow_diagright; btn.Click += btn_Click; textBoxFolder.Controls.Add(btn); // Send EM_SETMARGINS to prevent text from disappearing underneath the button SendMessage(textBoxFolder.Handle, 0xd3, (IntPtr)2, […]

C中数组的最大大小

我明白,硬件将限制程序执行期间分配的内存量。 但是,我的问题是不考虑硬件。 假设内存的数量没有限制,那arrays没有限制吗?