• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

软件发布时同一个系统出现不同的问题,最有可能的问题是?

shangqiao 2004-12-07 05:01:06
我们开发时使用的是xp+sp2和win2k server,都没有问题,但是当在客户机子上安装时:
有两台win98,一台正常,二另一台启动时就出现问题,直接终止
有两台win2k pro,一台正常运行,一台出现问题,直接终止
有台win2003,程序退出时出现问题,读内存错误

我想问出现这种问题最有可能是?
...全文
128 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shangqiao 2004-12-08
谢谢了,我将mdac升级后就没有问题了
回复
bohut 2004-12-08
我的email:bohut@163.com
发给我,帮你看看程序
回复
bohut 2004-12-08
要实现你的功能也未必要用m_pCommand的啊,有一个m_pRecordset就足够了
我不是说你用m_pCommand的就一定有错,但是你说你的m_pCommand返回NULL,而从你给的上面的这段代码上我看不出有什么问题,所以建议你别用m_pCommand。
回复
shangqiao 2004-12-08
发现其中一个问题是ado com失败,如下代码,我的连接可以正确建立,但是当得到command指针时返回的是0,这个是怎么回事呢,我在其他机子上可以,那些机子也没有安装sqlserver嘛,我用下面的两种方法都不行,一样的结果
void DataBaseOperator::init()
{
//AfxOleInit();
try{
::CoInitialize(NULL);
}
catch (...) {
AfxMessageBox("初始化ADO环境失败!");
}

try
{
// 打开
m_pConnection.CreateInstance(__uuidof(Connection));

// m_pConnection=new ConnectionPtr("ADODB.Connection");
// m_pConnection("ADODB.Recordset");
//m_pCommand("ADODN.Command");

DataFileOperator configHelper;
configHelper.setConfigFileName("config.ini");
CString databaseServer=configHelper.getConfigItem("database_server","root","192,16.1.14");
CString databaseUserName=configHelper.getConfigItem("database_userName","root","root");
CString databasePassword=configHelper.getConfigItem("database_password","root","");
CString linkString;
linkString.Format("Provider=SQLOLEDB;Data Source=%s;Initial Catalog=load;User ID=%s;Password=%s;",databaseServer,databaseUserName,databasePassword);
m_pConnection->Open(linkString.AllocSysString(),databaseUserName.AllocSysString(),databasePassword.AllocSysString(),adModeUnknown);
// 使用ADO创建数据库记录集
//m_pRecordset.CreateInstance(__uuidof(Recordset));
//m_pCommand.CreateInstance(__uuidof(Command));
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pCommand.CreateInstance("ADODB.Command");
m_pCommand->ActiveConnection = m_pConnection;
}
catch(_com_error e)
{
CString error;
error.Format("数据库连接失败:%s",e.ErrorMessage());
AfxMessageBox(error);
return ;
}
}
回复
oyljerry 2004-12-07
检查内存操作
回复
luolovegui 2004-12-07
mark
回复
没有做变量的初始化?
回复
wangweixing2000 2004-12-07
如果98的两天电脑配置一样(最好都是刚装的新系统)说明不是少了dll,那就是你程序中操作内存时没有安全的判断就开始使用!
回复
fzd999 2004-12-07
laiyiling,干净的只能是开发环境,测试一定要找贴近用户的环境。

有多种可能,一是缺少系统文件,二是和其他软件冲突。建议你加入OutputDebugString之类的调试信息,具体定位退出的点,然后就好判断了。
回复
Kudeet 2004-12-07
呵呵!上面的意见都很好

干净的机子测试
---------
初始化
回复
DentistryDoctor 2004-12-07
估计是变量未初始化之类的。
回复
shangqiao 2004-12-07
我用的全是静态连接库,自己开发的dll也注册过了,也报成功注册
回复
dsffs
回复
new1mm 2004-12-07
未定义操作
回复
bobob 2004-12-07
开发完了一定要找一台干净的机子测试,这样才能把问题明确了

建议你用刚装好的机子测试一下,因为可能你程序用到的某个dll(或别的东西)在一台机子上没有,而你开发用的机子上有

回复
老夏Max 2004-12-07
一些变量没有初始化就使用了!
呵呵,我也遇到过BOOL型变量,虽然两个都是XP,但是一台默认是FALSE,一台是TRUE!
回复
EnochShen 2004-12-07
可能是该注册的COM没有注册
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-12-07 05:01
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……