Typically this happen if some needed dll file dosen't exists on the device. What you should do is try to find all dependant dll files. This is able to be done e.g. dependency walker of visual studio 6.0. Later you should check the target device have all these dll files. Ok this is able to be done by checking all LIBRARY statements from the mmp file too.
This could also be caused by some other missing resource,...
...so maybe the easiest way to find solution is to eliminate libraries one by one and detect when applications is able to launch.
Yes, it is not not easy to find what cause this :-(
I have checked the library files. I've taken all libraries from MMP and built a simple application which checks corresponding DLLs on z: and asked some of our beta-testers to run it. All libraries are present on target.
However, it seems that eliminating libraries is the only way now to debug this prob.
That's especially difficult without having the real 9500 here at the development desk
>>That's especially difficult without having the real 9500 here at the development desk
I really can believe this, hope you will soon get a device for testing purpose :-o
My suggestion to use dependency walker is caused by the fact some libary (dll) could use some other missing dll file, and this is not documented anywhere. Dependency walker is able to show dependencies of dll files.
One possibility comes to my mind. Duplicate uid's!!! Is it possible there is used this same uid on this device beforehand, and are this uid is really 'free' not used by manufacturer. In this case you can try to format device (clear c-drive) to get rid of unneeded uids.
The system try to seek correspond resource with aid of uid and it can found the file from wrong location, from location of some other older application. This could cause not found too.
Yeah, I think I should use dependency walker. I'll try.
There's absolutely no chance the problem is caused by the duplicate UIDs. I've taken the one generated by Symbian for us about two weeks ago and it is guaranteed to be unique.
I'm aware of the problems could be caused by UIDs. I have some ER5 source code here from CD of one Symbian programming books and that's clearly visible over there how imporant these UIDs are. But that seem to be not my case.
On symbian knowledgebase I've read that it is possible to track application loading via eshell.exe, which (hmm?) outputs tracing information when application starts. However I'm not sure if there is a eshell.exe on target 9500 and, moreover, even if it is, I doubt it outputs any debugging information.
Well, now it can be seen that even though these files are missing, they are "included" only by top-level DLLs which *are* present on target and none of which I may remove from the project.
Hence it looks like all needed DLLs are also there. I'm afraid I'm totally lost
I think this means you project uses cflog.dll which uses etel etc.
If cflog.dll and yes it is missing from the target the application is not able to launch, or did i understand something wrong ?
I find the cflog.dll from my wins build and I take a peek to it and it uses comsdbgutl.dll and euser.dll. Is it some dll needed by emulator, but why my application dosen't use it ? Have you the LIBRARY cflog.lib statement on your mmp file ?
This is how i use dependency walker (DW): I copied my application binary (wins) to epoc32\release\wins\udeb. Launch DW and open my.app. It show all dll files (libraries) what i have include in the mmp file and in the same order. If one of these dll files are missing you are in trouble and need to find some other dll file.
What is cflog.dll, google and forum dosen't give any hint :-(
I use DW absolutely the same way. I've taken all the DLLs it generated and inserted it into the library checker - I think you remeber that app Sadly, DW works only with WINS binaries, whereas ARMI binaries may differ significantly in what's related to the full dependency tree of libraries.
Of course I do not link directly none of "lost libraries". And I don't link that cflog.lib too. I think it is only for WINS build.
The dependency I've pointed is in reverse direction. I.e. I link to EIKCORE.lib which itself uses UIKLAF, and that on - SKIN and so on.
So I only link to the rightmost libraries in my hierarchies. Here's my mmp library list:
Maybe we are totally on wrong way, Etel3rdParty.dll uses that missing cflog.dll but this really could be wins related issue.
I think the only way to continue is to eliminate 6 last libraries one by one, and finally find out what the actual 'bad' library is. Maybe there is used some deprecated method, which is not available anymore, becase it is located in some missing dll.
yeah guessing...but have a good and relaxing weekend.
P.S Here are the methods available from etel3rdparty.dll
Defined in CTelephony:
CancelEstablishDataCall(), CancelReceiveDataCall(), EstablishDataCall(), EstablishDataCall(), FindDeviceStatus(), NewL(), NewLC(), ReceiveDataCall(), ReceiveDataCall(), TerminateDataCall(), Version(), ~CTelephony()
Check you are not using any other...e.g. wins only methods or kind.