根据文件strtoul,关于它的回报价值......
此函数将转换后的整数作为long int值返回.如果无法执行有效转换,则返回零值.
如果我正在解析用户提供的字符串"0",对于我的应用程序,"0"可能是有效条目,该怎么办?在这种情况下,似乎我无法确定是否使用了strtoul是否执行了有效的转换.还有另一种方法来处理这个问题吗?
我想定义一个大的位域,以便快速监视一个非常大的元素结构的状态.这是我到目前为止:
#define TOTAL_ELEMENTS 1021
typedef struct UINT1024_tag
{
UINT8 byte[128];
} UINT1024;
typedef struct flags_tag
{
UINT1024:TOTAL_ELEMENTS;
} flags_t;
当我尝试编译它时,我收到错误消息,"错误:位字段`<匿名>'具有无效类型"
位字段只能用于某些类型吗?我认为如果我定义了一个足够大的变量,那么我的应用程序所需的大量位域就可以被定义,因为位域必须不大于用于定义它的类型.
任何想法或建议将不胜感激.
如何在应用程序退出时指定返回错误代码?如果这是一个VC++应用程序,我可以使用SetLastError(ERROR_ACCESS_DENIED)- return GetLastError()API.有没有办法在C#中做到这一点?
static int Main(string[] args)
{
Tool.Args = args;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Download_Tool());
return Tool.ErrorCode;
}
Run Code Online (Sandbox Code Playgroud)
如何Tool.ErrorCode设置可理解的价值?如果我尝试类似的东西Tool.ErrorCode = ERROR_ACCESS_DENIED,我会收到一个错误,"当前上下文中不存在名称ERROR_ACCESS_DENIED".谢谢.
附加信息
我的例子过于简化了.有没有办法这样的事情:
Tool.ErrorCode = ERROR_ACCESS_DENIED;
return Tool.ErrorCode;
Run Code Online (Sandbox Code Playgroud)
...生成编译错误,而不是:
Tool.ErrorCode = 5;
return Tool.ErrorCode;
Run Code Online (Sandbox Code Playgroud)
......哪个有效,但使用了"神奇数字".我想避免使用魔术数字.
我正在尝试编写一个使用串行端口的C++ MFC应用程序(例如COM8).每次我尝试设置DCB时都会失败.如果有人可以指出我做错了什么,我真的很感激.
DCB dcb = {0};
dcb.DCBlength = sizeof(DCB);
port.Insert( 0, L"\\\\.\\" );
m_hComm = CreateFile(
port, // Virtual COM port
GENERIC_READ | GENERIC_WRITE, // Access: Read and write
0, // Share: No sharing
NULL, // Security: None
OPEN_EXISTING, // The COM port already exists.
FILE_FLAG_OVERLAPPED, // Asynchronous I/O.
NULL // No template file for COM port.
);
if ( m_hComm == INVALID_HANDLE_VALUE )
{
TRACE(_T("Unable to open COM port."));
ThrowException();
}
if ( !::GetCommState( m_hComm, &dcb ) )
{ …Run Code Online (Sandbox Code Playgroud) 当我的应用程序准备关闭时,使用CreateThread以下算法创建它:
_bCloseRequested = TRUE;
dwMsThen = ::GetTickCount();
do
{
::GetExitCodeThread( m_hThread, &dwExitCode );
dwMsNow = ::GetTickCount();
}
while( (dwExitCode == STILL_ACTIVE) && ((dwMsNow - dwMsThen) < 50000UL) );
Run Code Online (Sandbox Code Playgroud)
如果线程在5个分配的秒内未能关闭,是否应该关闭线程句柄,或者是否允许它保持打开状态?谢谢.
我意识到,这可能是偏好的问题,但我注意到,在很多代码样本中我见过的变量名称具有前缀g_,s_,m_,或只_.这是一种普遍接受的做法,这些前缀是什么意思?还有其他人会很高兴知道吗?
我有一个用于Microsoft.Office.Interop.Excel从 Excel 工作簿中提取数据的应用程序。Excel 工作簿中的信息已移至 Access 数据库,我的任务是更新应用程序,以便它在数据库中查找数据。我找到了Microsoft.Office.Interop.Access参考,但如何使用它打开数据库并运行查询?MSDN 上关于此的文档似乎有些缺乏。也许我找错了地方... :\ C# 应用程序使用 .NET 3.5。谢谢。
我的团队正在增加对 git 的使用,我们希望开始使用公共分支,以便用户可以在那里进行集成/合并,而不是 master。我如何创建一个公共分支?
是的,我是个菜鸟。谢谢你的帮助!:D
我有两个多行文本框在 splitContainer 中分开。当我向左或向右拖动分隔符时,我希望文本框相应地调整大小。我该怎么做呢?我正在使用 Microsoft Visual C# 2008 Express Edition。谢谢。
我正在尝试使用kernal32.dll中的几个函数.但是,当我的应用程序尝试调用第一个函数时,它会抛出一个EntryPointNotFoundExceptionUnable to find an entry point named 'SetDllDirectory' in DLL 'kernel32.dll'.
public class MyClass
{
/// <summary>
/// Use to interface to kernel32.dll for dynamic loading of similar DLLs.
/// </summary>
internal static class UnsafeNativeMethods
{
[DllImport("kernel32.dll", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
internal static extern IntPtr LoadLibrary(string lpFileName);
[DllImport("kernel32.dll", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
internal static extern bool SetDllDirectory(string lpPathName);
[DllImport("kernel32.dll", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
internal …Run Code Online (Sandbox Code Playgroud)