看看这个LINK到底是怎么回事?????????
收先我用文本写好了一个THKOBJ.THK,然后用THUNK把它转换成了THKOBJ.ASM文件。这个THKOBJ.THK文件里写了一个函数,是DLL32要调用DLL16中的那个函数。函数里面当然有XXXX=INOUT之类的语句。也有一些类型定义.然后用TASM32分别把这个THKOBJ.ASM文件用参数/DIS_16和/DIS_32编译成了两个OBJ文件,(THKOBJ16。OBJ,THKOBJ32。OBJ)一个用来和DLL16。OBJ来LINK ,一个用来和DLL32。OBJ来LINK。而DLL16。OBJ和DLL32。OBJ分别由DLL16。CPP和DLL32。CPP编译而来(编译器分别为BCC和BCC32),它们在编译的过程中均没有ERRORS。
好,现在我就开始用TLINK来连接DLL16。OBJ和THKOBJ16。OBJ
用TLINK32来连接DLL32。OBJ和THKOBJ32。OBJ
但是LINK时问题出现了,有这么几个问题:1。显示ERRORS,说什么DLL32。CPP,DLL16。CPP和THKOBJ.ASM中的一些函数没有定义,奇怪啊!我在IDE环境中用BCC(BC3。1 FOR WIN)和BCC32(BC5。0)分别编译了他们都通过了啊,生成了OBJ文件啊,怎么在DOS窗口下用LINK 加上一些参数来连接这些OBJ文件就说里面的函数没定义?????我在LINK的时候还把应该包含的IMPORT.LIB文件,DEF文件都按照命令行格式要求加进去了啊,怎么会这样呢???
注: 我在上面的两个。CPP文件内已经加入了DLLMAIN(。。。){CONNECT=THK_CONNECT16("DLL16.DLL","DLL32.DLL",.....)}等等之类的语句了.请大虾指点一二!!!!!
还有就是,我用BORLAND的编译器加THUNK做成DLL32和DLL16后,在VC中加载DLL32.DLL,调用这个DLL32里面函数,它应该就会按照设计的思路去CALL那个DLL16里面的函数吧!!!?????
多谢!!!!!!!!!!!!