|
Yes we don't need to release managed pointers.
I tried to check how released pointers will work.
Its clear now. Thanks for your explanation.
|
|
|
|
|
Hi to all. I'm trying to open some project wroted using WTL. When I try to rebuild it (using VS2008 on Win XP) I get the compile error as above. Now, "atlres.h" file is in directory which I added to my project settings properly and I don't know why error appears!?
The message states "cannot open.." which means it has no trouble locating it? but rather cant open it?
Please help!
Thanks in advance.
|
|
|
|
|
I think you need to add the WTL include directory to the include directory path for the resource compiler. Right-click on the project, select 'Properties', select Resources->General in the properties window and add the WTL include directory to Additional Include Directories.
|
|
|
|
|
Thanks for replaying to me. I already have directory path (D:\...\WTL80\include) included in Aditional Include Directories.
?
|
|
|
|
|
In the Additional Include Directories for the resource compiler? I'm NOT talking about the C++ compiler options...
|
|
|
|
|
In 'MyProgram' Property Pages under C/C++ General Additional Include Directories.
|
|
|
|
|
OK I got you.
Stop complaining about that.
Thanks big time!
Now I get:
"fatal error LNK1104: cannot open file 'C:/Program Files/Microsoft SDKs/Windows/v5.0/Lib/DnsAPI.Lib'" ?
|
|
|
|
|
That's a completely different matter - if you really need DNSAPI.lib, what I'd do is open a Command Prompt window, and execute the following commands:
CD /d "c:\Program Files"
dir /s/b dnsapi.lib
It might take a while to run, probably, but it'll likely find any DNSAPI.lib you have. On my machine, I get the following output:
C:\Program Files\Microsoft SDKs\Windows\v5.0\Lib\IA64\DnsAPI.Lib
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\DnsAPI.Lib
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64\DnsAPI.Lib
C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib\DnsAPI.Lib
C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib\IA64\DnsAPI.Lib
C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib\x64\DnsAPI.Lib
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib\DnsAPI.Lib
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib\DnsAPI.Lib
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib\AMD64\DnsAPI.Lib
You can see that (for some reason - I don't know why!) I only have Itanium libraries under C:\Program Files\Microsoft SDKs\Windows\v5.0.
|
|
|
|
|
Is there any way you can get him to take another one, like second from v6.0A for example?
|
|
|
|
|
Yes - in the project properties, under 'Linker', you can tell the linker what directories to look in.
Alternatively, you can add them under Tools->Options, somewhere near the place where you can say what C++ include directories to use.
|
|
|
|
|
Tried it in both places but still no improvement (in tools options even when I pull it up at the top of list)!
Error:"fatal error LNK1104: cannot open file 'C:/Program Files/Microsoft SDKs/Windows/v5.0/Lib/DnsAPI.Lib'"
But big thanks for you anyway.
|
|
|
|
|
Sounds like something has the whole of that path hard-coded.
There might (might!) be a #pragma comment(lib, "C:/Program Files/Microsoft SDKs/Windows/v5.0/Lib/DnsAPI.Lib") somewhere in your code or the code you #include ?
|
|
|
|
|
I agree it looks like hard-coded line of code because no meter what directory path I add, both in 'project property->linker->additional library directories' or 'tools->options->VC++directories(under library files)' I'm getting the same error:
"LINK: fatal error LNK1104: cannot open file 'C:/Program Files/Microsoft SDKs/Windows/v5.0/Lib/DnsAPI.Lib'"!
But can't find where in my code I'm doing that. I inherited this project from another person and on his machine everything works just fine.
???
|
|
|
|
|
Problems are solved, I get the project working!
Thanks for helping me around!
If I have any future question al be sure to post it here.
Once again thanks!
|
|
|
|
|
I am facing the same problem u faced..but i am not getting the solution.
the error i got is:
fatal error LNK1104: cannot open file 'C:/Program Files/Microsoft SDKs/Windows/v5.0/Lib/DnsAPI.Lib'
please help me..
thanks in advance..
|
|
|
|
|
Hi,
it was a long time ago, but if I remember correctly I had to recreate the workarounds (folder states/names/positions) as the person who redistrict this project to me. For example I placed all folders needed in my 'D:\MyProject\...' while on his PC it was placed on 'C:\' drive each folder for himself. I know this may seem odd (especially if you link everything properly ) but it worked.
The thing was there was many files to edit and rebuild for things to work this seamed to be the easy way!
Best luck to you!
|
|
|
|
|
CComObject<CMyCircle> *pCircle;
HRESULT hRes = CComObject<CMyCircle>::CreateInstance(&pCircle);
IMyCirclePtr pCircle1;
pCircle1.CreateInstance(__uuidof(MyCircle));
Difference between pCircle & pCircle1?
|
|
|
|
|
(Presuming CMyCircle is a proper COM interface) - pCircle1 is a managed pointer (it calls AddRef and Release when necessary). pCircle isn't, so you have to call AddRef and Release when necessary.
|
|
|
|
|
I need smtp2 code..in oder to send mass email address at a time....
|
|
|
|
|
i need mass sender to in box ..
|
|
|
|
|
And this has what connection to ATL/WTL/STL?
|
|
|
|
|
whats the advantage in using CComPtr over CComQIPtr?
How to create COM object using CComObject class?
|
|
|
|
|
CComQIPtr performs an IUnknown->QueryInterface call on the interface pointer you pass in the constructor, to get a correctly typed interface pointer (or NULL in the case that the interface pointer you gave it does not implement the interface pointer type you want). CComPtr assumes that you're passing a correctly typed interface pointer (i.e. the same type as what the CComPtr has been instantiated for).
So - if you are 100% sure that the interface pointer type is the correct type, CComPtr is fine. If you can't make that guarantee, then you need to use CComQIPtr . CComQIPtr 's constructor will be a little slower than CComPtr 's (it does the QueryInterface call, after all), but it is safe.
|
|
|
|
|
I am using Vista and VS2008. I have changed setup80.js and it gives the message
App Wizard successfully installed!
Now when I want to create a project it goes through all the dialog boxes but at the end no project is created. What I am missing.
|
|
|
|
|
Yesterday I installed VS2008, downloaded WTL and added the WTL include directory to VS settings but had not run the .js file. So after seeing you mail I tried it only to have it say it couldn't find Visual Studio. You said you changed setup80.js; but not what you changed which would have helped. Anyway, a quick look in the registry showed that it 9.0 was needed, presumably this is what you meant. I did a search and replace in setup80.js for '8.0' and changed it to '9.0' in about four places. I saved the file as setup90.js and ran it with it completing successfuly.
On starting a new VS2008 project I now get the option of a WTL project. Selecting this and the defaults on the wizard gave me a WTL project, files and all.
I realise this doesn't tell you what you are doing wrong, but it does tell you what I did to get it to work.
|
|
|
|