|
When you're using windows x64 and compiling for windows x64, don't replace __AllocStdCallThunk and __FreeStdCallThunk with HeapAlloc/HeapFree. By default, windows x64 has memory execution protection and will NOT run thunk code ATL is using and your application process will lock with no error message. Use this code instead:
void* __stdcall __AllocStdCallThunk()
{
LPVOID mem = VirtualAlloc(0, sizeof(_stdcallthunk), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if (!mem) return 0;
return mem;
}
void __stdcall __FreeStdCallThunk(void* ptr)
{
if (!ptr) return;
VirtualFree(ptr, 0, MEM_RELEASE);
}
This code marks allocated memory as executable and application will work again. Thanks for your thanks
|
|
|
|
|
Just for the record, ATL (version 3) comes only with the Platform SDK 2003 (R2), newer versions are only vanilla win32.
Somebody in Microsoft probably realized that you don't need VS Pro if you can get hold of ATL files/headers (even "old" version 3 headers work great with WTL 8.0 and compile at level 3 warnings in VC2005 Express), so go get them while they're still available.
|
|
|
|
|
hallo erstmal,
ich möchte ein video(h.264/oder egal was für ein videocodec) peer to peer über internet streamen(RTP ODER udp),und hierfür ein programm in c++ oder c# schreiben , das diese funktion "streaming" ausführt.
ich wäre für jede Hilfe sehr dankbar.
danke voraus.
agach
|
|
|
|
|
While trying to get some Direct Show stuff working on Vista with VC++ 2008 Express Edition on Vista and the new renamed Windows SDK (known b4 as Platform SDK) I got errors like "Cannot open atlthunk.lib"
Which many others seemed to have got for different VS versions.....
The one which says comment the pragma does not work for the versions i have...bcause the header doesnt have such a pragma .
What worked: create a dummy empty lib in the VC++ version you are using.
DO NOT copy the lib to where you want - you get some manifest errors ... either create the lib in the dir you want or give the path of where it was placed by VC.
I dont know if its related but after this i got some errors in winnt.h in the line
typedef void * POINTER_64 PVOID64;
i commented it and replaced it with
typedef void * __ptr64 PVOID64;
and it worked.
|
|
|
|
|
Hello !
Has anyone tried to make WTL Work with visial c++ express 2008 edition?
www.tigar.com
|
|
|
|
|
It seems that ATL headers are not included in latest Windows SDK anymore.
Since WTL depends on ATL, does it means that we are no longer able to use VC Express + Windows SDK + WTL to build GUI application? Correct me if I am wrong.
Any other free GUI framework that we can use to develop Windows based GUI application? Any suggestion?
|
|
|
|
|
Hm ... , My primary concern is WTL , but other options are: WxWidgets , SmartWin++ , FLTK , maybe Qt becaouse of licensing restriction ( gpl-ed and commertial licenese ) .
Anyway , I can always use VC express 2005 .
www.tigar.com
|
|
|
|
|
Yesterday, my computer is attacked by virus. I deceided to update the OS from WINXP(sp2) to VISTA. It seemed that all things went well first until i was porting my project based on WTL to the new platform. I downloaded the latest SDK and installed it. After that, I installed VS2008 express and began to build my project while I found there's no ATL head files in the SDK directiory! Does someone have some soultion for my problem?
|
|
|
|
|
Yes, I just use windows WDK_6001_18001 for atl. Modifly the wtl setupexpress80.js script from version 8 to version 9. All other procedure are the same as this topic. Then I can compile a simple dialogue base wtl for testing. So, you can try and see if there are any other problems exist. I am not a wtl programmer and just start my learning. one more thing, I did not follow the auther to modifly the atl code. Just install WDK and setup the correct path for atl inside VC 2008 express only.
|
|
|
|
|
When I want to crate a WTL-project I get the following message :
Line 394
Character 2
Error Object attended (in French "Erreur objet attendu")
Code 0
URL fille///C:/WTL/AppWiz/Files/HTML/1053/default.htm
When I look in the Html code of default.htm
I find on line 394 setDirection();
This is in the function :
function InitDocument(document)
The result is that I get Only the default page and cannot make choices.
Can anyone help me?
|
|
|
|
|
Juste replace in the wizard *.html the GetHostLocale by your languageId (1033 for french) at the top and the bottom files.
|
|
|
|
|
Hi,
I am using VC++ express edition 2005,WMPPSDK 9.0,WMFSDK 9.0 and PSDK.
i took the code from
http://download.microsoft.com/download/4/8/f/48f553fc-cdca-403c-b6aa-09de38559cd3/Connect_Plugins_Samples.EXE[^]
when i executed project wmplayerpluginagent it gave me the following errors.
------ Build started: Project: WMPlayerPluginAgent, Configuration: Debug Win32 ------
Compiling...
stdafx.cpp
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3242) : error C2065: '_Module' : undeclared identifier
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3242) : error C2228: left of '.Lock' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3244) : error C2228: left of '.Unlock' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3366) : error C2228: left of '.CreateInstance' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3373) : error C2228: left of '.Lock' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3375) : error C2228: left of '.Unlock' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3641) : error C2228: left of '.m_csTypeInfoHolder' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3658) : error C2228: left of '.AddTermFunc' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3667) : error C2228: left of '.m_csTypeInfoHolder' must have class/struct/union
type is ''unknown-type''
Build log was saved at "file://e:\Connect_Plugins_Samples\WMPlayerPluginAgent\Debug\BuildLog.htm"
WMPlayerPluginAgent - 9 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
can any one tell me why it is giving this error.
AS
|
|
|
|
|
The Windows Vista SDK (which is 1gb) doesn't seem to include atlbase.h. Am looking for the Platform SDK? Because I can only find the Windows 2003 Platform SDK.
It drives me nuts how Marketing keeps changing product names.
|
|
|
|
|
|
A project that I need to build includes the files atlcoll.h, atlstr.h and atltypes.h. Alas, even though I followed the instructions by the letter and installed the complete "Platform SDK for Windows Server 2003 R2", these files are nowhere to be found. Any tips on how to work around this?
Thx,
Chris
|
|
|
|
|
The headers you mentioned don't come with VC Express Edition, only Professional (maybe Standard?) and above.
|
|
|
|
|
I got as far as to linking but now I've been getting the error:
LINK : fatal error LNK1104: cannot open file 'atlthunk.lib'
I have Microsoft Platform SDK for Windows Server 2003 R2 installed.
What more should I get?
|
|
|
|
|
Edit your altbase.h there is #pragma comment directive, that queries
for atlthunk.lib - comment this.
this is an instruction made in this page by the author, you probably missed to comment the line like i do
|
|
|
|
|
Thanks man, you saved my time.
|
|
|
|
|
|
I tried to use it's earlier version (1.2.3) with VC 2005 Express and WTL but it didn't work - couldn't even open rc files It all started to look promising when they came up with 1.3.1 and added support for include paths. I made a few test WTL projects in VC 2005 Express and all rc files opened just fine. When rc file is saved all #pragmas, #ifdefs and #endifs are removed, but the file still compiles under VC 2005 Express. It's REALLY worth a try .
--
Vladimir Svrkota,
CardWare
Novi Sad, Serbia.
|
|
|
|
|
This is a quote from their main page:
"An include file always named resource.h (it is impossible to change it), witch contains the ID definitions."
If they can't spell "which" correctly, then I do not trust them to generate my code.
Nana Nana Nana Nana dog thief!
|
|
|
|
|
How do you set the include path of it ?
|
|
|
|
|
I followed all the instructions so that I can use Visual C++ 2005 Express Edition to compile general WIN32API source programs as well as WTL source programs.
I also installed WTL appwizard with setup80x.js but I always failed to make WTL project. An error message box appears and says: "Runtime error! Will you debug it? Line: 382. Error: Object is necessary." (I am using Korean one and the message was in Korean language so that I translated it into English.) If I click "yes" button, Visual studio Just-in-time Debugger runs. And then if I choose "new instance Microsoft Script Editor" and then click "yes" button again, "Remote Procedure Call step-by-step code execution" window appears. If I click "confirm" button, an alart message box appears and says: "Microsoft JScript Runtime Error: object necessary". If I click "abort" button, C:\Program Files\Microsoft WTL\AppWiz\Files\HTML\1033\default.htm is loaded and it pointed the line 383, "setDirection();". Thread was [1840] 730 thread.
Please help me!
-- modified at 6:03 Sunday 1st October, 2006
__(*^.^*)__
|
|
|
|
|
I found the solution!
I think that Microsoft has updated the VC++ 2005 Express Edition without noticing it. I have downloaded the .iso files of Visual Studio 2005 Express Edition in November, 2005. And I installed VC++ 2005 Express Edition with the file and followed all the instructions to use WTL with Visual C++ 2005 Express Edition but it didn't work.
So, I tried to download the .iso files of Visual Studio 2005 Express Edition again and compared new one with old one. I found that the sizes of them were different from each other. The date of the latest file in the old .iso file was 23rd, September, 2005 while that of the new one is 13th, December, 2005.
I installed VC++ 2005 Express Edition with the new one and followed all the instructions to use WTL with Visual C++ 2005 Express Edition. Finally, it worked.
Now I can use WTL in VC++ 2005 Express Edition.
__(*^.^*)__
|
|
|
|