
1、原程序采用MSFLXGRD表格控件,表格名称为Grid1,Grid1原始属性中设置行数为:Grid1.Rows = 201,设置列数为:Grid1.Cols = 21,而且在程序运行代码中没有根据数据量动态增加行数的功能,导致总行数超出201时运行错误;
2、当下一次导入数据需要的行数大于前一次的行数时运行错误。
bug测试步骤:
(1)程序界面右侧表格中右键,选择“导入模板”——选择“擂台模板一_197行.txt”,会正常导入所有数据。
(2)程序界面右侧表格中右键,选择“导入模板”——选择“擂台模板二_201行.txt”,导入数据错误。
我的解决思路:动态增加行数比较麻烦,干脆直接在“导入模板”功能中一开始就插入代码,设置行数和列数为最大,以满足需求,MSFLXGRD表格控件的最大方格量为350000个,所以设置Grid1.Cols = 110,Grid1.Rows = 3000。
需添加的代码内容(编译模式为Native Code,需要加入如下VB代码修复):
Grid1.Cols = 110
Grid1.Rows = 3000
方法:搜索论坛,大概知道了pediy的作法,在PE空节处写入需要加入的16进制机器码,然后在需要修改的地方jmp过去,再jmp回来。
你说的这个,我记得可以用java的反射来实现,网上复制粘贴一个例子import java.io.FileInputStream
import java.io.FileNotFoundException
import java.io.IOException
import java.lang.reflect.Field
import java.lang.reflect.InvocationTargetException
import java.lang.reflect.Method
import java.util.Properties
public class Test {
系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software\\Microsoft\\Windows\\CurrentVersion\\Run。
CFileDialog
savePath(true,NULL,NULL,OFN_HIDEREADONLY,"exe
Files(*.exe)|*.exe||",NULL)
if(savePath.DoModal()==IDOK)
{
CString
fullName
fullName=savePath.GetPathName()
RegKey=NULL
RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&RegKey)
RegSetValueEx(RegKey,"my_program",0,REG_SZ,(const
unsigned
char
*)(LPCTSTR)fullName,fullName.GetLength())
AfxMessageBox("写注册表成功")
UpdateData(FALSE)
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)