程序在其他机子上不能跑,是控件NTGraph和NTgraph3D的问题吗?

vchell 2010-06-14 12:24:16
我的一个程序用到了两个控件NTGraph和NTgraph3D(个人喜好原因,所以这两个控件都用上了),自己的机子上都注册了。建立工程时就选择的是静态dll(我用的是VS2008,考虑到了dll的问题),自然是静态编译的(也在项目属性确认确实是静态编译的),release版本的。但是在其他机子上就是跑不起来,任务管理器里也没看到进程,急寻原因及解决方法!
...全文
257 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixinazhangdan 2011-11-30
  • 打赏
  • 举报
回复
注册 NTGraph3D.dll
注册 NTGraph.ocx
将这两个控件需要用到的OpenGL库文件(从51CTO下载):glu32.dll、glu.dll、GLUT32.dll、OPENGL32.dll、opengl.dll拷贝到和控件同一目录下。
你在试试
vchell 2010-06-16
  • 打赏
  • 举报
回复
目前用了一个简单的方法 用system调用regsvr32实现了,但是上面的代码怎么不行呢??求高手解释
迷途的书童 2010-06-16
  • 打赏
  • 举报
回复
VS2008, 要装新的微软的新DLL才可以@
vchell 2010-06-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 vchell 的回复:]
在自己机子上测试了,没有注册的情况下,release版本的也运行不了 看来问题还是没有注册了

但是我用下列代码进行注册,不能成功,求解释。。。

另外我如果要用批处理文件来进行注册的话,应该怎么写bat文件呢(对此批处理文件的命令语法等完全不懂,求指点)
HMODULE hModule=LoadLibrary("NTGraph3D.dll");
if(hModule)
{ ……
[/Quote]

大家帮忙再看看 这段代码为什么不能实现控件的注册呢???
vchell 2010-06-15
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 stjay 的回复:]
引用 16 楼 vchell 的回复:
有更好的方法注册控件吗?? 从用户角度考虑,能通过简单的点击实现最好了


搞个安装包
[/Quote]

除此之外,没有更好的咯???
vchell 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 visualeleven 的回复:]

你使用的那两个控件是否在其他的机器上注册了呢???
[/Quote]

其他机子上没注册,release版本的也要注册码?
Eleven 2010-06-14
  • 打赏
  • 举报
回复
你使用的那两个控件是否在其他的机器上注册了呢???
oyljerry 2010-06-14
  • 打赏
  • 举报
回复
控件是否为COM等类型,还需要regsvr32命令来注册..
同时你的VC runtime library也要带到其他机器上
dungeonsnd 2010-06-14
  • 打赏
  • 举报
回复
dll是动态连接库,在运行时才加载的。
你说的,“建立工程时就选择的是静态dll(我用的是VS2008,考虑到了dll的问题)”
只是静态系统库,你不用拷MFC42等库过去,但是要拷其它dll。除非你用静态库,如lib库,so库等。
dungeonsnd 2010-06-14
  • 打赏
  • 举报
回复
你说程序在其他机子上不能跑,言下之意在自己的机子上正常?

运行之后提示什么?

如果什么提示都江堰市没,任务管理器也没出现进程,可能是你程序问题,没启动成功或者启动就退出了。

如果提示找不到 XX.dll。 把XX.dll放到程序运行所在目录再试试,另外确定 XX.dll也是release版本的。
vchell 2010-06-14
  • 打赏
  • 举报
回复
首先感谢各位,我在把情况描述一下

哦,在我的机子上一切正常(控件注册了)。在其他机子上双击之后什么都没有了(其他机子没有注册控件),任务管理器里也找不到进程,我怀疑是控件没有注册的原因,但是不是说release版本的不用注册控件吗???

建立工程时提示how would you like to use the MFC library?然后我就选了as a static linked library,这样就不需要考虑MFC管理的库文件了吧? 而且这种静态库的问题我原来也遇到过,那都会有提示信息的(碰的弹出一个警告框),但是我这次的程序在其他机子上跑时是什么反应都没有,所以很是纳闷!

继续等待解决方法。。。
stjay 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 vchell 的回复:]
有更好的方法注册控件吗?? 从用户角度考虑,能通过简单的点击实现最好了
[/Quote]

搞个安装包
vchell 2010-06-14
  • 打赏
  • 举报
回复
有更好的方法注册控件吗?? 从用户角度考虑,能通过简单的点击实现最好了
hustzion 2010-06-14
  • 打赏
  • 举报
回复
这控件没玩过,maybe是新机子缺了点什么。
debug试试,debug后在另外一台机子跑看会不会有提示信息(比如缺*.dll)。---by feng
精锐掷矛手 2010-06-14
  • 打赏
  • 举报
回复
看来是点击程序什么反应都没有,注册这两个控件试试。
向立天 2010-06-14
  • 打赏
  • 举报
回复
静态编译管的是MFC吧
你的这个NTGraph在目标机器上注册了么?
vchell 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 rebort_q 的回复:]

copy /y NTGraph3D.dll %windir%\system32\
regsvr32 /s NTGraph3D.dll

批处理命令
[/Quote]

程序不能运行,手动regsvr32 注册后就可以了
vchell 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 rebort_q 的回复:]

copy /y NTGraph3D.dll %windir%\system32\
regsvr32 /s NTGraph3D.dll

批处理命令
[/Quote]

我在命令行里用regsvr32 /u命令注销了控件的注册后 用bat文件测试的,没有起作用,我将上述命令放在bat文件后跟控件放在同一目录下,没有注册成功,也没有regsvr32 的 DllRegisterSever成功的任何提示信息。
精锐掷矛手 2010-06-14
  • 打赏
  • 举报
回复
copy /y NTGraph3D.dll %windir%\system32\
regsvr32 /s NTGraph3D.dll

批处理命令
向立天 2010-06-14
  • 打赏
  • 举报
回复
静态哦编译只管MFC的库
第三方库人家不管
你要把控件用的dll或ocx考到目标机器上去注册
加载更多回复(2)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧