草庐IT

c++ - tchar 安全函数——UTF-8 常量的计数参数

我正在将一个库从char移植到TCHAR。根据MSDN,该片段的计数参数是多字节字符数,而不是字节数。那么,我做对了吗?我在VC9中的项目属性显示“使用unicode字符集”,我认为这是正确的,但我不知道这会如何影响我的计数参数。_tcsncmp(access,TEXT("ftp"),3);//ordoiwant_tcsnccmp?“仅在Windows平台上受支持,_mbsncmp和_mbsnbcmp是strncmp的多字节版本。_mbsncmp最多比较count个多字节字符,_mbsnbcmp最多比较count个字节。它们都使用当前的多字节代码页。_tcsnccmp和_tcsncmp

c++ - 在 API 中导出常量的正确方法

下面示例中显示的两种解决方案中,哪一种是从我的API(WindowsDLL)导出常量的正确方法,为什么它是更好的选择?头文件namespaceExampleAPI{//SolutiononeexternconstDWORD__declspec(dllexport)AKTION_OK;externconstDWORD__declspec(dllexport)AKTION_FEHLER;//SolutiontwoconstDWORDAKTION_FEHLER_DATENBANK=2;constDWORDAKTION_FEHLER_XXX=3;}Cpp文件namespaceExampleAP

c++ - Windows VK_ 常量是如何声明的?

例如VK_LEFT、VK_DELETE、VK_ESCAPE、VK_RETURN等。它们是如何声明的,在哪里声明的?它们是常量、#defines还是其他?它们来自哪里?如果可能,请提供声明它们的文件名/路径。或者其他一些尽可能具体的信息。 最佳答案 这些是在PlatformSDK的winuser.h文件中使用#define声明的。在我安装的VisualStudio2008中,完整路径是C:\ProgramFiles\MicrosoftSDKs\Windows\v6.0A\Include\WinUser.h

windows - Windows 上的 "System"和 "System Idle Process"PID 是否常量?

在我看过的几个WindowsXP系统上,“系统空闲进程”的PID始终为0,而“系统”进程的PID始终为4。在枚举进程的Windows程序中,是否安全通过这些PID识别这些进程,或者它们在某些情况下会有所不同吗? 最佳答案 我有假定这些PID是静态的生产代码,它可以在XP、Vista和Win7上运行。但不确定它是否是官方支持的方法!另外两种解决问题的方法:按升序对事件PID列表进行排序-SystemIdle和Systemprocesses应该是前两个。检查给定进程的父PID-SystemIdle和System进程的父PID均为0。

c# - 访问引用应用程序设置配置文件的常量静态类

我有一个名为LocalConstants的类....publicstaticclassLocalConstants{publicstaticstringDM_PATH=ConfigurationManager.AppSettings["DMQueue"];publicstaticstringPROJECT_PATH=ConfigurationManager.AppSettings["MSQueue"];}当尝试在我的主程序中访问此类时,出现空引用异常。ConfigurationManager.AppSettings[中的任何内容始终为空。但是如果我写//Thevalueisreturn

c# - 常量是否固定在 C# 中?

我在C#中使用BorlandCAPI工作,该API使用大量字节指针来表示字符串。我一直面临将一些C#字符串作为(短暂的)字节*传递的需要。我的自然假设是const对象不会分配到堆上,而是直接存储在程序内存中,但我无法在任何文档中验证这一点。这是我为生成指向常量字符串的指针所做的示例。这确实在测试中按预期工作,我只是不确定它是否真的安全,或者它只是靠运气。privateconststringpinnedStringGetWeight="getWeight";unsafepublicstaticbyte*ExampleReturnWeightPtr(intserial){fixed(byt

c# - 具有静态成员的枚举与常量/类?

我有一组特定于应用程序的代码(代码与其名称的一对一映射),并且我一直在C#中使用枚举来表示它们。我现在不确定是否有必要这样做。这些值永远不会改变,并且它们将始终与这些标签相关联:Workflow_Status_Complete=1Workflow_Status_Stalled=2Workflow_Status_Progress=3Workflow_Status_Complete=4Workflow_Status_Fail=5我应该使用枚举还是带有静态成员的类? 最佳答案 对我来说,int类型的静态成员似乎不如枚举。你失去了枚举的类型

c# - 使用 Ninject 绑定(bind)到常量和绑定(bind)到作用域中的类型

哪种创建单个对象到接口(interface)的绑定(bind)的方法更可取,何时以及为什么:Kernel.Bind().ToConstant(newFoo());或Kernel.Bind().To(typeof(Foo)).InSingletonScope();或者,如果两种方式都不正确且最好避免,那么应该改用什么? 最佳答案 使用这两种构造,您可以完成相同的任务。然而,在后一种方法中,单个Foo对象的构造被推迟到第一次Get调用时。让我用一个小例子来说明这一点。考虑以下应用程序:classProgram{staticvoidMai

c# - 在 C# 中实现全局常量的最佳方法是什么?

我有一个Common项目,我在其中添加了QueryStringNames的公共(public)常量。我知道通常常量应该是内部常量或私有(private)常量,但我在这里需要公共(public)常量,因为我想允许全局访问查询字符串名称、sessionkey等。我知道有3种解决方案,但它们都有一个重要问题。调用方程序集将包含我的常量的副本,这意味着如果我必须更改常量值,我将必须编译我的通用程序集和调用方程序集!1)publicconststringConstName="avalue";2)publicreadonlystringConstName="avalue";3)Tobestored

c# - 为什么作为引用类型的字符串可以是非空常量,而其他引用类型常量必须为空?

据我所知,string是一个引用类型。const可以与reference类型一起使用,只有当它们被分配为null时。我的问题是为什么作为引用类型的string可以赋值为文字字符串(或非空)? 最佳答案 取自const文档:Aconstantexpressionisanexpressionthatcanbefullyevaluatedatcompiletime.Therefore,theonlypossiblevaluesforconstantsofreferencetypesarestringandanullreference.换句