Tag: C#的

我应该如何在C中构build复杂的项目?

我比初学C级的技能要多一点,并想知道是否有任何事实上的“标准”来构造一个在C中有些复杂的应用程序,甚至是基于GUI的应用程序。 我一直在使用Java和PHP中的OO范例,现在我想学习C,恐怕我可能会以错误的方式构build我的应用程序。 我不知道如何使用程序语言来实现模块化,解耦和干燥的准则。 你有任何阅读build议? 我找不到任何C的应用程序框架,即使我不使用框架,我总是通过浏览他们的代码find好主意。

PCH警告:头文件停止不能位于macros或#if块中 – Visual C ++ 2010 Express SP1

这是从一个网站粘贴,这大概是工作。 我做了一些Googlesearch,发现我现在遇到的问题是今天下载的Visual C ++ 2010 SP1的结果,现在给我这个错误: PCH Warning: header stop cannot be in a macro or #if block. 希望有人能帮助我这个! #ifndef APP_STATE_H #define APP_STATE_H #include "Framework.h" class AppState; //this line is giving me the error //define two classes #endif Framework.h: #ifndef OGRE_FRAMEWORK_H #define OGRE_FRAMEWORK_H #include <OgreCamera.h> #include <OgreEntity.h> #include <OgreLogManager.h> #include <OgreOverlay.h> #include <OgreOverlayElement.h> #include <OgreOverlayManager.h> […]

expression树的实际使用

expression式树是一个很好的function,但它的实际用途是什么? 他们可以用于某种代码生成或元编程或一些这样的?

命名空间仅在C#/ .NET中的类可见性?

在C#中,你可以让一个类只在它自己的命名空间中可见,而不需要生活在一个不同的程序集中? 这对典型的不应该在其他地方使用的帮助类似乎很有用。 (即什么Java调用包私人类)

为什么C#允许你“抛出null”?

在编写一些特别复杂的exception处理代码的时候,有人问,你不需要确保你的exception对象不为空? 我当然不是,但是后来决定尝试。 显然,你可以抛出null,但它仍然变成一个exception的地方。 为什么这是允许的? throw null; 在这个片段中,幸好“ex”不是null,但可以吗? try { throw null; } catch (Exception ex) { //can ex ever be null? //thankfully, it isn't null, but is //ex is System.NullReferenceException }

Tricky面试主题为C ++

给定下面的代码,您将如何创build/实现SR.h,以便在解决scheme中没有任何星号的情况下生成正确的输出结果? 我被这个问题弄得一团糟。 我想知道一些人们用于这个问题的不同方法。 #include <cstdio> #include "SR.h" int main() { int j = 5; int a[] = {10, 15}; { SR x(j), y(a[0]), z(a[1]); j = a[0]; a[0] = a[1]; a[1] = j; printf("j = %d, a = {%d, %d}\n", j, a[0], a[1]); } printf("j = %d, a = {%d, %d}\n", j, a[0], a[1]); } […]

为什么在堆栈上分配这么多空间?

这个问题来自回答Stack Overflow问题为什么书上说“编译器为内存中的variables分配空间”? ,我试图向OP演示在堆栈中分配variables时会发生什么,以及编译器如何生成知道要分配的内存大小的代码。 显然,编译器分配的空间比需要的多得多。 但是,在编译以下时 #include <iostream> using namespace std; int main() { int foo; return 0; } 使用debugging模式编译的Visual C ++ 2012,您可以获得以下汇编程序输出,不会优化: int main() { 00A31CC0 push ebp 00A31CC1 mov ebp,esp 00A31CC3 sub esp,0CCh // Allocates 204 bytes here. 00A31CC9 push ebx 00A31CCA push esi 00A31CCB push edi 00A31CCC lea edi,[ebp-0CCh] 00A31CD2 mov ecx,33h 00A31CD7 […]

在fps游戏中如何瞄准机器人?

我很好奇,如果有人有任何关于在线FPS游戏,如反恐精英的目标机器人的经验/知识。 我很好奇,希望更多地了解光标如何知道如何locking对手。 显然,如果我想作弊,我可以去下载一些作弊,所以这更多的是一个学习的东西。 这一切都牵涉到什么? 他们钩住用户的鼠标/键盘为了将光标移动到正确的位置? 作弊应用程序如何知道指向光标的位置? 作弊的应用程序必须能够访问游戏应用程序内的数据,这是如何完成的? 编辑:为了答案,人们如何获得这些已知的内存位置来获取数据? 编辑2:可以说,我find一些值,我想在位置0xbbbbbbbb使用debugging程序或其他手段。 我现在如何访问和使用存储在应用程序中的数据,因为我不拥有游戏的内存。 或者我现在可以访问它,因为我已经注入进程,并可以复制内存使用memcpy或东西的地址? 其他人有什么补充? 试图尽可能多地学习这个!

LPCWSTR代表什么?应该如何处理?

首先,究竟是什么? 我想这是一个指针(LPC意味着长指针常量),但是“W”是什么意思? 它是一个特定的指针指向一个string或指向特定string的指针? 例如,我想closures一个名为“TestWindow”的窗口。 HWND g_hTest; LPCWSTR a; *a = ("TestWindow"); g_hTest = FindWindowEx(NULL, NULL, NULL, a); DestroyWindow(g_hTest); 代码是非法的,它不起作用,因为const char [6]不能转换为CONST WCHAR。 我一点都不明白。 我想清楚地了解所有这些LPCWSTR,LPCSTR,LPSTR。 我试图find一些东西,但是我更加困惑。 在MSDN站点FindWindowEx被声明为 HWND FindWindowEx( HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass, LPCTSTR lpszWindow ); 所以最后一个参数是LPCSTR,编译器要求LPCWSTR。 请帮忙。

什么是一个generics类的默认构造函数的语法?

在C#中禁止为generics类实现默认构造函数吗? 如果没有,为什么下面的代码不能编译? (当我删除<T>它虽然编译) 那么为generics类定义默认构造函数的正确方法是什么? public class Cell<T> { public Cell<T>() { } } 编译时间错误 :错误1类,结构或接口成员声明中的“(”)无效标记