【发布时间】:2016-12-02 11:22:22
【问题描述】:
我在 Visual Studio 2010 中创建了一个 c++ dll,其中有两个 char* 类型的变量(均未初始化)。我使用不同的方法为这些变量赋值。请参阅 sn-p
char* a;
char* b;
a = strtok(input,"^");
GetClassName(handle,b,255);
...
//definition of GetClassName
WINUSERAPI
int
WINAPI
GetClassName(
__in HWND hWnd,
__out_ecount_part(nMaxCount, return) LPSTR lpClassName,
__in int nMaxCount
);
上述代码在 WINDOWS 10 中失败。它适用于 Windows 7,8。
当我像char* b =new char; 一样初始化 char* b 时,它开始在 Windows 10 上工作,尽管我只初始化了 b 并且 char* a 仍未初始化。
当我将 char* b 初始化为 NULL 时,它不起作用。
Windows 10 中是否存在内存分配问题?另外我想知道这样初始化 char* 有什么缺点。
【问题讨论】:
-
“上述代码失败” “它不起作用”你看到了什么究竟?你的minimal reproducible example 在哪里?对您的问题提供严谨和科学的描述;如果你没有,那么你还没有结束你自己的调试阶段。另外,是什么阻止您阅读the documentation for the functions you used?
-
@LightnessRacesinOrbit 抱歉,我是新来的。从现在开始,我将在提问时遵循最小、完整和可验证的示例。我已经浏览了文档,但我想知道它在 windows7、8 上是如何工作的,但在 windows 10 上却没有
-
不是;它似乎只是。
标签: c++ visual-studio-2010 dll windows-10