|
Actually the NonMFCDll uses preprocessor _USRDLL. Removal of this and adding of _AFXDLL solved the problem. Thank you all.
|
|
|
|
|
i would really appreciate some simple example of creating SAFEARRAY and inserting couple of strings (probably BSTR, i don't know for now but convertion is not a problem) into it. there's plenty about it on the internet but none of sites seem to provide just a simple exlpanation how it all works...
regards
|
|
|
|
|
scoroop wrote: a simple exlpanation how it all works...
Umm, what do you mean...
I think samples found on internet and MSDN would explain what you need to know to be able to use SafeArrays.
If those for some reason are not detailed enough I doubt the more detailed explanation would be "simple".
Try to rephrase your question and provide a description of what you want to do, why you've picked that particular solution for your problem and explain what doesn't seem to work as expected. This would make it possible for the rest of us to suggest a better solution if there is one and to guide you better when we have a better understanding of your problem.
Questions like "Explain MFC/COM/ATL/.NET" will likely go unanswered and in the best case you'll be provided with links. Always start by browsing among the articles at CodeProject.
--
Roger
It's suppose to be hard, otherwise anybody could do it!
|
|
|
|
|
you're right. i will describe my problem then. i have a COM method, let's say DoSomething(SAFEARRAY** sa). now I know exactly that it requires BSTR strings in SAFEARRAY. i have those strings extracted from something else. they are in std::string but convertion is not a problem as i mentioned before. what i need to do is to initialize SAFEARRAY, put those strings in it and then call the DoSomething method. actually perhaps i should have posted it in COM message board but it's too late now. i'm quite a newbie to COM (i don't really know why my company assigned this task to me... probably they wanted me to learn something else . anyway i saw SAFEARRAY for the first time in my life today and it's not similar to anything else i've used before ;]. and i'm a bit confused... thanks in advance for your answer.
PS MSDN provides really little information about this. i especially mean examples...
|
|
|
|
|
You need to use SafeArrayCreate() which creates a SafeArray of desired type and dimensions/bounds.
Later you have to create BSTRs with SysAllocString() or CString::AllocSysString() and assign each SafeArray element with desired BSTR.
At last you are responsible for cleaning up with SafeArrayDestroy().
Something like this:
SAFEARRAYBOUND bounds = { 0, 1 };
CString theString = "The string";
SAFEARRAY* pArray = ::SafeArrayCreate( VT_BSTR, 1, &bounds );
if( pArray )
{
BSTR* pbstrData;
if( ::SafeArrayAccessData( pArray, &pbstrData ) == S_OK )
{
*pbstrData = theString.AllocSysString();
::SafeArrayUnaccessData( pArray );
DoSomething( &pArray );
::SafeArrayDestroy( pArray );
}
} N.B. The code above is not tested and lacks a for-loop for iterating through the elements in the array, but you should get the big picture by reading it.
Hope this helps
--
Roger
It's suppose to be hard, otherwise anybody could do it!
|
|
|
|
|
Hi,
I have a requirement to save the serialized data in memory. I tried using CMemFile instead of CFile for saving the serialized data in memory. But serialization becomes too slow since the data size is huge. Is there any other way I can save my serialization data in memory instead of a file?
Please let me know if you know any solution.
Thanks.
|
|
|
|
|
maybe something like this:
CSharedFile sf(GMEM_MOVEABLE|GMEM_DDESHARE|GMEM_ZEROINIT);
CArchive ar(&sf, CArchive::store);
obj->Serialize(ar);
ar.Close();
?
Cleek | Image Toolkits | Thumbnail maker
|
|
|
|
|
Hi Chris,
Thanks for your reply. I tried this also. But the problem is I'm using 50 MB data to store in memory. So these classes dont help since it stores data in RAM and it affects the performance. So the serialization is slow. It takes 20 minutes to serialize the 50 MB data. So I need to store the serialized data in hard disk(not in RAM) but not as a file. Is there a way? Please help me if you know.
Thanks for your help.
|
|
|
|
|
senthaaa wrote: since the data size is huge
How huge?
Maxwell Chen
|
|
|
|
|
I need to store 50 MB data.
|
|
|
|
|
Hi everyone,
I'd like to know how can I make a dll in VC++,I need to know all of the way that is exist for making dll in VC++,if there is a link that can help me please tell me.
Best Regards.
Orchid
|
|
|
|
|
maybe it is some helpful to you
here [^] and here[^]
|
|
|
|
|
Dear WhiteSky
Thanks alot for you guid.
Best Regards.
Orchid
|
|
|
|
|
|
Dear toxcct
Thanks alot for your help.
Best Regards.
Orchid
|
|
|
|
|
There is a lot of stuff for creating dll's and articles related to them here on code project. Just search for the right one that suits your needs
_AnShUmAn_
|
|
|
|
|
Dear AnShUmAn
Thanks alot for your help.
Best Regards.
Orchid
|
|
|
|
|
Dear AnShUmAn, toxcct , ..
Thanks alot for your help.
Best Regards.
Orchid
Dear Orchid85
Do you use a Mail-Merge script?
Best Regards,
VuNic.
<marquee scrollamount="1" scrolldelay="1" direction="up" height="10" step="1">--[V]--
[My Current Status]
|
|
|
|
|
|
Hi all...
Im developing a proj in VC++... In which i ve to implement excel like autofilter in the grid...
could any one help me to resolve it...
thanks in advance
-- modified at 9:01 Wednesday 10th May, 2006
|
|
|
|
|
Hi,
Please Explain me how to create an ActiveX control with basic form controls like Buttons,TextBox as well i would like to know how to read the values from controls from the wrapper program.
Thanks
|
|
|
|
|
|
Thanks but i need to read and set ActiveX control values from dialouge based application. Please explain me the same.
|
|
|
|
|
|
hello guys
is there a way in c++ to analyze a class structure??
i.e: getting the private and public data and functions in the class without having the source code of the class; only the binary !! maybe using the RTTI
|
|
|
|