小编Kar*_*Rao的帖子

char指针的动态内存分配

我有一个与char指针的动态内存分配有关的奇怪问题.我有类似的东西

char *input = new char; //1
gets(input) //2
char *dest = new char; //3
Run Code Online (Sandbox Code Playgroud)

在step3期间,我在运行时遇到堆损坏错误.仅当我输入的字符串长度超过23个字符时才会发生这种情况.

如果我不做任何新的操作,那么没有问题.

如果我指定,此问题已解决

 char *input = new char[100]; 

但我希望输入是基于用户输入的动态.

我不确定在这种情况下24字节的作用是什么.我不想限制为100或者n个字符...我在内存分配方面有点弱......有人可以解释这种情况吗?

c++ memory gets

3
推荐指数
2
解决办法
5039
查看次数

如何适当地初始化Win32 HANDLE?

可以将Win32初始化HANDLENULL吗?还是有更好的或推荐的方法来初始化HANDLEs?

例如,

void foo()
{
   HANDLE hFile;
   hFile = CreateFile(/* necessary arguments*/);
}
Run Code Online (Sandbox Code Playgroud)

我应该hFile用什么来初始化?

winapi handle

2
推荐指数
1
解决办法
2480
查看次数

在运行时更改窗体和usercontrol(.frm和.ctl)的字体

我有一个VB 6加载项,它将所有项目添加到项目组,遍历这些项目的每个组件,如果找到表单或用户控件,则更改其属性.

属性由用户定义.如果用户想要更改所有表单或usercontrol的高度,则代码段如下所示

Private Sub Update_ButtonClick()
  '..declaring all the variables here

  ' VBInstance is initialized to VBIDE.VBE when the add-in is loaded

  For Index = 1 To projCount
    compoCount = VBInstance.VBProjects(Index).VBComponents.Count
    For jIndex = 1 To compoCount

      csFileName = VBInstance.VBProjects(Index).VBComponents(jIndex).name
      componentType = VBInstance.VBProjects(Index).VBComponents(jIndex).Type

      If componentType = VBIDE.vbext_ct_VBForm Or componentType = VBIDE.vbext_ct_UserControl Then '.frm or .ctl         
        VBInstance.VBProjects(Index).VBComponents(jIndex).Properties(propChange).Value = propvalue 'changing the property
        VBInstance.VBProjects(Index).VBComponents(jIndex).SaveAs csFileName 'Saving the file
      End If
    Next jIndex
  Next Index
End Sub
Run Code Online (Sandbox Code Playgroud)

每当我给出属性名称时Font,我都会收到错误

运行时错误'425'无效的对象使用

我试图PropertyBag.WriteProperty …

vb6 fonts user-controls controls

1
推荐指数
1
解决办法
744
查看次数

标签 统计

c++ ×1

controls ×1

fonts ×1

gets ×1

handle ×1

memory ×1

user-controls ×1

vb6 ×1

winapi ×1