有没有办法在C#中确定字符串的编码?
说,我有一个文件名字符串,但我不知道它是用Unicode UTF-16编码还是系统默认编码,我怎么知道呢?
使用WinDbg时,应该在哪里放置私有符号文件(pdb?)?
我的情况是:我有一个我想调试的DLL.我有这个DLL的源代码和符号文件.这个DLL由另一个DLL(我没有符号或源代码)调用,而这个DLL又由EXE调用(我也没有符号或源代码).
我的问题是我收到了警告
***警告:无法验证C:\ TheProgram\SomeSubfolder\AnotherSubfolder\MyDll.dll的校验和
我认为这个警告是我在调用堆栈中获取以下类型的消息的原因:
MYDLL!ACLASS ::机能缺失+ SomeHexAddress
我的文件结构如下所示:
exe:C:\ TheProgram\program.exe
调用dll:C\TheProgram\SomeSubfolder\caller.???
我要调试的DLL:C:\ TheProgram\SomeSubfolder\AnotherSubfolder\MyDll.dll
注意:我将符号文件路径和源文件路径设置为生成调试DLL的位置,在我的工作区中与exe的不同驱动器上..但我确实复制了pdb + map文件并将其放在我想要的dll上调试..
是否可以使用带有UTF-8字符串的Windows API ANSI函数?
例如,假设我有一个以UTF-8编码的路径.我可以调用CreateDirectoryA或CreateFileA使用UTF-8路径,还是在调用函数之前必须执行一些转换?
我有一个我想要配置文件的DLL ..我试图使用Very Sleepy,但我似乎无法获取源文件列来显示函数来自哪个源文件,所有显示的都是"未知"..无论如何,我真的很困惑如何使用这个应用程序..谁能指点我一些帮助?关于它的文档不多,似乎最近还没有维护.=//
谢谢..
编辑:添加另一个问题:
这个应用程序中的独家和包容性含义是什么?谢谢..
我来自TortoiseSVN背景,并决定试试TortoiseHg.我真正习惯使用TortoiseSVN的一件事是SVN Repo-Explorer,它与Windows资源管理器的工作方式非常相似.然而,当我尝试使用TortoiseHg的Repository Explorer时,我得到的是其他东西,它更像是TortoiseSVN的Show Log.它向我展示了最近提交的内容以及更改了哪些文件,甚至还有漂亮的图表.但是,我仍然想要TortoiseSVN的Repo-Explorer.
TortoiseHg有这样的东西吗?如果我只能查看更改的内容,我该如何围绕存储库进行搜索?
经过大量的谷歌搜索,我无法想出任何东西..
有没有办法得到一个没有旋转框的numericUpDown控件?
我需要一个只接受整数的文本框,并且numericUpDown具有我正在寻找的完美行为.但是,我需要为空间限制隐藏数字旋转框.
当我尝试执行类似numericUpDown.Controls [0] .Hide()或numericUpDown.Controls.RemoveAt(0)之类的操作时,旋转框会消失,但会留下一个不可用的空格,而旋转框曾经是这样.因此数字在那一点滚动,意味着空间浪费了..
还有其他解决方案吗?
谢谢..
有没有人有资源在x86上学习汇编语言?我正在尝试在MSVC++ 6中调试一个程序并经常遇到汇编(比如踩到memcpy).以前我只是忽略了这些但memcpy一直在抛出异常,我需要找出原因..
任何帮助,将不胜感激 :)
编辑:哇,很多很棒的资源..我希望我能把所有的东西都标记为已接受的答案:P
提示:结合任何人?:P
新编辑:我只看了答案,这些似乎是最好的:
Aseraphim的帖子专门针对intel x86
jkchong的帖子有更多介绍性文字
我正在观看WWDC 2009主题演讲以及有人对Windows 7/Vista所说的话让我很好奇......
该发言者声称7仍然是一个糟糕的操作系统,因为它仍然使用相同的技术,如DLL和注册表.他的说法有多准确,OS X的做法有多么不同?即使os x也动态加载了库吗?我猜注册表的东西可能有些重量..
任何人都可以向我解释每个操作系统策略的差异吗?
我不想在这里或任何地方煽动粉丝,我只是想知道两种操作系统如何解决一般问题.
谢谢,
克雷布斯
我有一个std :: vector.我想将向量的内容复制到一定大小的char*缓冲区.
有安全的方法吗?
我可以这样做吗?
memcpy(buffer, _v.begin(), buffer_size);
Run Code Online (Sandbox Code Playgroud)
或这个?
std::copy(_v.begin(), _v.end(), buffer); // throws a warning (unsafe)
Run Code Online (Sandbox Code Playgroud)
或这个?
for (int i = 0; i < _v.size(); i++)
{
*buffer = _v[i];
buffer++;
}
Run Code Online (Sandbox Code Playgroud)
谢谢..
我正在调试MS VC++ 6.0中的一些代码.出于某种原因,在我想要删除一些动态分配的内存的某个点上,它会中断并且我得到一个弹出消息框,说"用户断点从代码中调用等等",然后出现反汇编窗口,然后我弹出看到
*memory address* int 3
Run Code Online (Sandbox Code Playgroud)
奇怪的是,代码中有NOWHERE,我正在调用这样的汇编指令(我认为asm int 3是x86的硬件中断命令?)..
可能是什么导致了这个?
编辑:答案:我的代码是"走出末端"的数组,但只在Visual Studio调试标记的位置使用0xFDFDFDFD,这被称为NoMan'sLand栅栏..我认为它也称为Off-by-一个错误..这个数组与我在发生错误时释放内存的点无关.这使得发现更难.. :(
c++ ×3
c# ×2
debugging ×2
dll ×2
encoding ×2
visual-c++ ×2
windows ×2
ansi ×1
assembly ×1
macos ×1
mercurial ×1
profiling ×1
registry ×1
stdvector ×1
stl ×1
string ×1
symbols ×1
tortoisehg ×1
tortoisesvn ×1
unicode ×1
utf-8 ×1
verysleepy ×1
visual-c++-6 ×1
winapi ×1
windbg ×1
winforms ×1
x86 ×1