When compiling the app
Problem A1
Link Error:Unresolved External BASIC in vsa_btn.obj
Explanation
When you compile an ABC data DLL for the first time you may find it including
items that you didn't expect. This is because it is linking in all the ABC
classes. It needs to do this because the data DLL doesn't know which of the ABC
classes will be required by later apps.
Some 3rd party accessories ship as ABC compliant classes, and this means that
they are also automatically included in your DLL. If they in turn make use of
any compiled resource, such as a DLL or file Driver, then you may get a link
error.
In the above example the Free ABC product, supplied by Vince Sorenson, is
being included. And it makes use of the BASIC file driver. Usually Vince's
template would add the BASIC driver to the list for you. But in this case the
Class is being included
without the template being used. Thus the BASIC
driver hasn't been added to the project, or to the APP file.
Solution
The solution is in 2 parts.
- Add the Basic driver to your application. Open the App. Click on the
Project button. Scroll down to Database Friver Libraries and Add BASIC.
- Add the Basic driver to the list of drivers used by your application.
Global Extension. Multi-Proj. Resources tab. File Drivers button.
Tip
Other products may need other drivers. For example Makeover uses the DOS driver.
When compiling the prj
Problem P1
Link Error: Unresolved
External DCTKILL@F in app.obj
Link Error: Unresolved External DCTINIT@F in app.obj
Solution
On the Multi-Proj extension
for the app;
Untick the option : This app has no BC modules, and enter the correct
Highest BC Number.
Problem P2
Link Error: Unresolved
External appBCn$:xxxxxBCn:DCTKILL@F
Link Error: Unresolved External appBCn$:xxxxxBCn:DCTINIT@F
Link Error: Unresolved External appBCn$:xxxxxBCn:FILESINIT@F
Solution
On the Multi-Proj extension for the app;
Enter the correct number of BC modules in the Highest BC number setting.
Problem P3
Link Error : Unresolved External BASIC in whatever.obj
Solution
Add the BASIC driver to the Multi-Proj extension as it is
required in your application (most likely by some 3rd party product). Add
it on the Multi-Proj extension, Resources Tab, File Drivers button.
Problem P4
Link Error : Unresolved External DOS in whatever.obj
Solution
Add the DOS driver to the Multi-Proj extension as it is
required in your application (most likely by some 3rd party product). Add
it on the Multi-Proj extension, Resources Tab, File Drivers button.
When running the application
Problem R1
you get a "FM3 : Possible file
change without changing version number" when you run an alternate driver version
of your application.
Solution
in your data dll
global embed point, called "program setup"
priority 10
put
compile('***',MsSQLDriver=1)
ds_VersionModifier = 1000
***
if you had a third driver, say oracle, then you'd also add
compile('***',OracleDriver=1)
ds_VersionModifier = 2000
***
and so on.
Interacting with other 3rd party products
FM3
Problem R1
Vince Sorensons Free ABC
Problem P3