Console program in Microsoft C++, version 4.2, Win98. ADC11/12
From www.picotech.com I downloaded the software drivers and tried to use the instructions to build the console application as a starting point to develop some software. Hence I created a project workspace and added the file adc11con.c and the library adc11ms.lib. The program compiled although it gave 10 warnings about:
…function conversion from const integer to unsigned short and integral size mismatch in arguments, conversion supplied.
Then when I tired to build an executable it came back with a fatal error: LNK1106 invalid file or disk full, cannot seek to Ox3d47981a.
There is over 450 megabytes free on the disk. Does anyone know how to get around this problem?
I'm afraid I've not encountered this error before, perhaps someone else on the forum will have seen it?
Have you looked up the error on the MSDN? I often find that this helps.
The link error remains. I have cured all the warnings and the program compiles but when I try to link I get the following referring to the library that I can’t look at
Linking...
\Pico\Drivers\win32\ADC11ms.lib : fatal error LNK1106: invalid file or disk full: cannot seek to 0x3d47981a
Error executing link.exe.
adc11con.exe - 1 error(s), 0 warning(s)
The help file off the C++ 4.2 CD notes and the web link also gives the same information:
-------------------------------------------------------------------------------------------------------
invalid file or disk full: cannot seek to location
The tool could not read or write to location in a memory-mapped file.
Tips
· Your disk may be too full to complete the link. Free up some space and try the link again.
· The error may be a result of trying to link over a network. Some networks do not fully support the memory-mapped files used by the linker. Try linking on your local disk to see if that fixes the problem.
· There may be a bad block on your disk. Although the operating system and disk hardware should have detected such an error, you may want to run a disk checking program.
I am not running over a network
Scan disk doesnt report any errors.
Although 450 megabytes may not be large by current standards its 25% of the 2 gigabyte disk on my laptop.
But what number is 0x3d47981a? What does the x mean? Clueless here. If the 3d47981a is in hex it has the decimal equivalent 1028102170, but is this of any relevance?
Is it possible that the adc11ms.lib needs a more advanced C++ than 4.2? If so are there any earlier versions of the library about?
Several hours of trying various things have not taken me past this point. Does any one have a suggestion of a way forward?
I'm afraid I'm not an expert on compiler warnings, you're probably better off talking to Microsoft. One of the customers on the forum may know the answer ... but you are far more likely to get a response on a specific C++ forum (there's plenty around).
The only thing I can suggest is to run a full surface scan using scan disk, if you haven't already done this (you'll know if you have because this take a VERY long time). Also, a defrag might free up some space. Incidentally, an 8 digit number on a PC beginning with 0x is nearly always a 32-bit hexadecimal memory address.
Thanks for your reply. Although my laptop didn’t have any scan disk errors to be sure I tried an older win95 machine and got the same link error.
Quite bizarre as I am clueless as to why the link would want to write to a specific address and even if it does why it can’t find it on two different machines. Strange. Even more wild to me is that the failing link address can be changed by commenting out some of the PICO specific commands in the C.
Sort of feel I must be doing something wrong, even though I feel I am following the instructions. Still software and strange things are not unknown. Maybe I will try to write the code in one of the other options.