iCAx开思工具箱
标题:
有关二次开发时连接时遇到的问题,望各位赐教!!
[打印本页]
作者:
h2023197
时间:
2005-6-8 10:48
标题:
有关二次开发时连接时遇到的问题,望各位赐教!!
我的程序编译时无错,一连接时就出现问题,不知是怎么回事,望各位指点我一下!!
谢谢!!我把程序上传,有空的帮我看看!!
错误信息是:
--------------------Configuration: Code - Win32 Release--------------------
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
App.cpp
Code.cpp
FileNew.cpp
Main.cpp
Generating Code...
Linking...
Creating library Release/New.lib and object Release/New.exp
New.exp : warning LNK4070: /OUT:Code.dll directive in .EXP differs from output filename "..\startup\New.dll"; ignoring directive
App.obj : error LNK2001: unresolved external symbol _FILE_NEW_Cancel_cb
FileNew.obj : error LNK2001: unresolved external symbol _FILE_NEW_Cancel_cb
Main.obj : error LNK2001: unresolved external symbol _FILE_NEW_Cancel_cb
App.obj : error LNK2001: unresolved external symbol _FILE_NEW_Dest_cb
FileNew.obj : error LNK2001: unresolved external symbol _FILE_NEW_Dest_cb
Main.obj : error LNK2001: unresolved external symbol _FILE_NEW_Dest_cb
..\startup\New.dll : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
New.dll - 7 error(s), 1 warning(s)
作者:
深夜摔键盘
时间:
2005-6-8 11:02
你的工程中如果有一个A.cpp文件,要调用另一个文件B.cpp中定义的函数,程序连接时,在A.obj中是找不到你要用的函数的,因为它们是在B.obj中,而连接器并不知道这个,需要你告诉它,就要用extern修饰符。
exitern怎么用,查查书吧。
作者:
h2023197
时间:
2005-6-8 14:42
谢谢键盘兄,我看了一下,在那些需要用到那些函数的地方加上extern,可还是有问题啊,可能是我的C语言基础不行,你就我的程序看看,该哪些地方需要改动,谢谢键盘兄,又得麻烦你!!!
作者:
h2023197
时间:
2005-6-8 18:09
键盘兄帮看看吧,我对这个问题挺着急的,因为是个初学者,所以有些方面不是很懂,请见谅!!
作者:
深夜摔键盘
时间:
2005-6-8 19:07
1.把FILE_NEW_cbs结构体放在主函数中赋值。
2。在FileNew.h中,在那几个回调函数前添加extern
作者:
h2023197
时间:
2005-6-8 20:48
键盘兄,我按照你的做了,还是出现那个问题,你好人帮到底,帮我把程序改好了发上来吧,我也学习一下,谢谢!!!!
作者:
h2023197
时间:
2005-6-9 18:38
是不是觉的我的问题太简单了,因为是入门,很多东西都不懂,希望能多提携我一下,也好让我有继续学下去的信心和动力啊!
谢谢大家!!
帮我一下吧!!!
作者:
深夜摔键盘
时间:
2005-6-9 19:34
我没觉得简单啊。觉得你弄的挺复杂。你的意图就是想从一个菜单触发一个对话框吧。但你把文件搞太多了,本应该放在同一个文件中的变量和函数,你把它们都搞散了,又驾驭不了各cpp之间的外部变量。
你先试试把你的文件结构改的简练一些,硬性规定,只允许你的程序中出现如下四个文件stdafx.h stdafx.cpp Main.h Main.cpp。看看是不是还出问题。如果没有问题,你再试着把文件数加多,再研究一下extern的用法。
你应该谈谈,为什么想把文件搞的那么多,你对你要做的这个小程序的思路是怎样的? 我不是吝啬,宁愿说这么多废话,也不愿给你改程序。我觉得论坛应该存在着讨论问题的风气。
作者:
h2023197
时间:
2005-6-10 09:40
我是刚刚学习UG二次开发,所以很多方面都不懂,所以就照着那本《UG应用开发教程与实例精解》书的步骤来的,书上就是这样的,没想到会出现这么多的问题,我再试试吧,不过还是请键盘兄把改后的程序能够发上来,对比一下我以前的程序,也好让我知道是什么地方发生了问题,这样以后讨论才有意义啊!!
谢谢键盘兄!!!
作者:
深夜摔键盘
时间:
2005-6-10 10:31
你的问题和UG二次开发没大关系,和C语言有关系。
既然是书上的例子,那说明这本书还挺注重程序的框架的,建议你按照书上的过程,一步一步的做个学习贴,大家一起来讨论学习。因为好多兄弟没有这本书,就一块学习。你多废点时间,得到的东西也许会多一些。
当然,如果你觉得这样很麻烦。那么兄弟们同样也不想花费时间来帮你修改代码。虽然你的程序很简单,但昨天晚上我也是花了近一个小时来看了。
下面是一个样例,把你的问题简化了一下,你看看它的格式。
作者:
h2023197
时间:
2005-6-10 16:14
谢谢键盘兄,你的提议很好,可惜我的水平不高,搞个学习贴不大可能了,等我再学习一阵后再看看,我先把那本书的随书光盘文件发上来,供大家看看!!!
这个是part1!
作者:
h2023197
时间:
2005-6-10 16:15
PART2
作者:
h2023197
时间:
2005-6-10 16:19
PART3
作者:
h2023197
时间:
2005-6-10 16:20
part4
作者:
h2023197
时间:
2005-6-10 16:21
part5,最后一个!
作者:
h2023197
时间:
2005-6-10 16:22
希望大家能够喜欢!!!
作者:
深夜摔键盘
时间:
2005-6-10 18:15
唉。我犯了个错误。函数默认就是extern的。
还没找出你的程序中的问题。
问一下,你的工程是自己创建的吗?我有点晕了,我从头建了一遍,没有什么问题。但你的那个,总不行。
作者:
h2023197
时间:
2005-6-11 08:18
对啊,我是通过MFC AppWizard(dll)工程建立的,按照书上的步骤来的,连接的时候为什么总是_FILE_NEW_Cancel_cb 和_FILE_NEW_Dest_cb 出问题呢,另外两个_FILE_NEW_Const_cb和_FILE_NEW_Ok_cb 就没问题呢,不过如果屏蔽掉有关_FILE_NEW_Cancel_cb 和_FILE_NEW_Dest_cb 的代码,就能连接成功了,晕啊!!
真的搞不明白了,郁闷啊!!!
作者:
深夜摔键盘
时间:
2005-6-11 17:55
还不行。
作者:
h2023197
时间:
2005-6-12 08:15
唉,键盘兄多费心了,万分感谢!!!
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3