|
This thread[^] documents the opposite scenario (64-bit client, 32-bit server) - does that enlighten the situation at all?
And this thread[^] indicates that 32-bit client and 64-bit client should be OK.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks Stuart for the pointers. Looks like all I need to do is to build/register both 32bit and 64bit proxy/stubs. Is that right?
In this case, can I also make the 32bit code act as a sink? Thanks.
|
|
|
|
|
Ummmm - yes, no, maybe - I really don't know
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
I did a quick check using ATLDUCK sample. Built the atlduck (local com server) in to 64bit, tried connecting to it from duck (32bit). CoCreateInstance worked perfectly, but when duck tried an Advise() to atlduck, it crashed with an error msg "runtime terminated the app" ... trying out some more experiments, will update on the results.
|
|
|
|
|
Pk, I am stuck with the error - "duck.exe - An application has requested the Runtime to terminate it in an unusual way". This error comes up whenever the client tries to do an Advise(). I remember seeing this issue in XP (during the VS.NET 2002 days) by installing an hotfix...but, my current testbed is Win7-64..any ideas why this error is coming?
BTW, are there any samples available that do this kind of 32 => 64 => 32bit calls/event_triggers? I am not able to find any (or prob I miss the key words in my search! )...Thanks.
|
|
|
|
|
I have got it working. The error was because of me registering a 32bit server stub (my bad!!)...thanks.
|
|
|
|
|
Nice, well done.
Maybe a short article on the subject would be useful, to help out other people facing the same issue?
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
sure will do, once I am done with my current legacy => 64bit port. Thanks.
|
|
|
|
|
Hi,
We have one library which is implemented by using STLPort.There is one application which wants to use this library and this application is using microsift STL.
Is there any way by which we can use both microsoft STL and STLPort in same project?
Thanks and Regards,
Vishal Soni
|
|
|
|
|
IIRC, STLPort doesn't use namespace std - it uses something like _STL and uses a macro (#define std _STLPORT ) to make that look like std in the code that uses STLPort.
You (obviously) need to make that distinction more explicit - I suspect you might be able to get your system to work by getting creative with macros.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks Stuart.
But before going in to this step,I am getting one more porblem.
I am trying to compile my library with "Visual studio 8" first time and it is giving some errors
related to stlport.I found the reason on net that current version of STLport on my system is not compatible with VC++ 8.0 version.
I tried to take the latest version from STLport.org but I am not finding the way by which I can build
stlport library from it.
Could you please help me?
Thanks and Regards,
Vishal soni
|
|
|
|
|
Version 5.2.1?
Downloading it and unpacking it reveals a configure.bat file, which you'll use to tell it what options to build into STLport. That builds a makefile which (as the configure script tells you) you use by going to build/lib folder and type "nmake clean install" to build and install STLport to the "lib" and "bin" folders.
Seems simple enough to me...
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Stuart Dootson wrote: Seems simple enough to me...
LMAO Thanks, get's my '5'
|
|
|
|
|
I am trying same but if I give the command "nmake clean install", then it gives
the error unknown command
After this I tried by giving command
"C:\Program Files\Microsoft Visual Studio 8\VC\bin\nmake" clean install
By this I am getting the error
'cl' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: 'cl' : return code '0x1'
Pleas tell that where I am wrong.
|
|
|
|
|
|
Thanks Stuart.
I am able to compile the stlport.After this I have given the Path of library file and header file
in VC8.This paths are on the top of the path list.
While compiling the project,90% of error have been removed but still there are some
errors like:
'value_type' : illegal qualified name in member declaration
missing type specifier - int assumed. Note: C++ does not support default-int
'allocator_type' : illegal qualified name in member declaration
missing type specifier - int assumed. Note: C++ does not support default-int
value_type and allocator_type are defined in CStdString.h file as
#define MYBASE std::basic_string<CT>
typedef MYBASE::value_type MYVAL;
typedef MYBASE::allocator_type MYALLOC;
Regards,
Vishal Soni
|
|
|
|
|
I'll suggest you pass CStdString.h through the pre-processor (use cl /p and see what the definitions of allocator_type and value_type look like. I suspect that there are macros not playing nicely together.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks Stuart
Those error have been removed with this setting but now another error is coming as following:
LINK : fatal error LNK1104: cannot open file '.\Debug\AgencyObject.obj'.
AgencyObject.cpp/h are exist in the same project.
Is this error related to setting we have done or I am doing something wrong?
thanks and Regards,
Vishal soni
|
|
|
|
|
Vishal Kumar Soni wrote: Those error have been removed with this setting but now another error is coming as following:
No - you misunderstood me. I suggested using cl /p to generate a pre-processed version of your file to see what code the compiler was really seeing. That gets rid of the error you were seeing because the compiler isn't run - so object code isn't generated for that file (AgencyObject.cpp, I guess).
So. If you do cl /p AgencyObject.cpp, you'll get a file called AgencyObject.i. This will contain the code that the pre-processor produces. All comments have been removed, all macros have been substituted with their definitions. In this file, you can see what the compiler sees when it produces the error messages about allocator_type and value_type and hopefully you'll realise why the error's happening.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
In AgencyObject.cpp file, I included CStdSting.h. So I checked the AgnecyObject.i file and macros are coming like following
template<typename CT>
class _SS : public stlp_std::basic_string<CT>
{
typedef stlp_std::basic_string<CT> MYBASE;
typedef _SS<CT> MYTYPE;
typedef MYBASE::const_pointer PCMYSTR;
typedef MYBASE::pointer PMYSTR;
typedef MYBASE::iterator MYITER;
typedef MYBASE::const_iterator MYCITER;
typedef MYBASE::size_type MYSIZE;
typedef MYBASE::value_type MYVAL;
typedef MYBASE::allocator_type MYALLOC;
VS8 is giving the error for last 2
typedef MYBASE::value_type MYVAL;
typedef MYBASE::allocator_type MYALLOC;
Regards,
Vishal Soni
|
|
|
|
|
I'm guessing you're also getting error message something like this?
a.cpp(18) : warning C4346: 'stlp_std::basic_string<_CharT,_Traits,_Alloc>::value_type' : dependent name is not a type
prefix with 'typename' to indicate a type
a.cpp(20) : see reference to class template instantiation '_SS<CT>' being compiled
If so, it's a shame you didn't mention those before, 'cause they explain everything - VC++ used to be less standards compliant - it would presume that was the name of a type, where it shouldn't have done. The error message says what's needed - the declaration of allocator_type and value_type need to have typename added to the type being aliased, like this:
typedef typename MYBASE::value_type MYVAL;
typedef typename MYBASE::allocator_type MYALLOC;
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks Stuart. It is workiing now.
I did not cheked the warning message before you pointed me.I was ignoring all warnings.
I was using same CStdString.h file in VC6 from long time.
Thanks again. Now I will try to use both Stlport and Microsoft STL in same project.
Regards,
Vishal Soni
|
|
|
|
|
I am adding to this chain I find issue is related to this.
Even though I am able to compile and link the project project using STLPort library. My code crashes when it tries to access a std::vector. The vector has been initialized using STLport STL.
when I initialized the vector it used stlp_std
MYApp.exe!stlp_std::vector<external_Lib::customString,stlp_std::allocator<external_Lib::customString> >::_M_insert_overflow(external_Lib::customString* __pos=0x075cc4d0, const external_Lib::customString & __x={...}, const stlp_std::__false_type & __formal={...}, unsigned int __fill_len=1, bool __atend=true) Line 161 + 0x38 bytes C++
when the 3rd party library code (built with Visual studio STL) access the vector it uses the Visual studio stl (std::vector) and hence crashes.
MYApp.exe!std::vector<external_Lib::customString,std::allocator<external_Lib::customString > >::begin() Line 633 + 0x13 bytes C++
Is there any solution to fix this?
|
|
|
|
|
I am adding to this chain as I find my issue is related to this.
Even though I am able to compile and link the project project using STLPort library. My code crashes when it tries to access a std::vector. The vector has been initialized using STLport STL.
when I initialized the vector it used stlp_std
MYApp.exe!stlp_std::vector<external_Lib::customString,stlp_std::allocator<external_Lib::customString> >::_M_insert_overflow(external_Lib::customString* __pos=0x075cc4d0, const external_Lib::customString & __x={...}, const stlp_std::__false_type & __formal={...}, unsigned int __fill_len=1, bool __atend=true) Line 161 + 0x38 bytes C++
when the 3rd party library code (built with Visual studio STL) access the vector it uses the Visual studio stl (std::vector) and hence crashes.
MYApp.exe!std::vector<external_Lib::customString,std::allocator<external_Lib::customString > >::begin() Line 633 + 0x13 bytes C++
Is there any solution to fix this?
|
|
|
|
|
Are you STL port header files?
This thing happens when there is something mix up of STL port library and microsoft library.
Regards,
Vishal
|
|
|
|