Author |
Topic |
|
barik
New Member
Israel
2 Posts |
Posted - Mar 13 2007 : 03:52:50 AM
|
In case you are using VisualAssist under MSVS6, Please notice it has a bug in its symbols db\\cache management:
1. My project imports an external "tlb" file -> works fine: #import "myExternalLib.tlb". 2. Update the tlb interface (via the other external project). 3. Can compile my project according to the new interface, but VA symbols are still old. 4. Close my project and studio, and reopen -> VA symbols are still garbled. 5. Regenerate the tlb file, and create a NEW project that imports it -> VA symbols are still garbled.
Workaround: Go to VA options dialog, hit Rebuild\\Clear buttons, and reload your project.
This problem was encountered using the latest VA build 1548. However, it didn't happen when tried the same VA under MSVS2005. |
Edited by - barik on Mar 13 2007 10:02:19 AM |
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 13 2007 : 08:35:47 AM
|
Do you have a simple test project that demonstrates this effect? I have a couple of test projects that produce "tlb" files, but I am not seeing a test project that creates and then uses them.
This is something that I personally do not really know about. |
zen is the art of being at one with the two'ness |
|
|
barik
New Member
Israel
2 Posts |
Posted - Mar 15 2007 : 06:30:51 AM
|
You can easily create a simple project (I used WIN32 console app) that use it. As I mentioned above, try: #import "myExternalLib.tlb" After recompile, notice the auto-generated TLH file is OK with the updated interface, but VA still displays the old symbols (though it might display the new ones too).
quote: Originally posted by feline ...but I am not seeing a test project that creates and then uses them...
|
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 15 2007 : 12:53:31 PM
|
I was not clear, my mistake, sorry about that.
How do I create a "tlb" file, and how do I then change its interface? I have had a look for articles at codeproject.com, but I don't really want to read a long series of articles on COM just to run a couple of basic tests.
I have a ATL COM project in VC6, but this is not creating a "tlb" file. I had expected it to, given the name, but it isn't. |
zen is the art of being at one with the two'ness |
|
|
bugfix
Tomato Guru
Germany
324 Posts |
Posted - Mar 15 2007 : 6:46:51 PM
|
feline, did you add an idl file to the project? |
http://www.mf-sd.de |
|
|
feline
Whole Tomato Software
United Kingdom
19020 Posts |
Posted - Mar 29 2007 : 3:07:00 PM
|
Apologies for the delay in getting back to you about this, a fairly major ignorance of COM, plus a lot of other jobs, slowed me down.
I now have a test solution, composed of two projects. One project creates the COM dll, and the second project uses it.
The project that uses the dll does so via the line:
#import "../Hello.tlb" no_namespace
and when I update the COM dll interface by adding a new function someone (I assume VA since "Get content from default Intellisense" is turned off) recognises this, and suggests the new function.
I am not rebuilding the symbol database, it just works.
Using alt-g on the new function takes me to the correct line in the IDL project.
Apart from having both projects inside one solution, am I doing something obviously wrong or invalid here? |
zen is the art of being at one with the two'ness |
|
|
|
Topic |
|