|
Is there a more straight forward way may be through using a library or something like that?
|
|
|
|
|
|
|
The link isn't working for me.
|
|
|
|
|
|
Hi,
We are using Microsoft provided DOM parser - MSXML2 version 4(or 40)
When we are saving XML file, we are generating whole new file including all nodes and elements. Size of XML file is 3.5 MB. So it is taking 350 MB memory (both virtual as well as physical) Once save is done we are releasing all the XML objects. But there is no change happening in memory. So every consecutive save keeps on increasing memory by 350MB (approx) After 3-4 save we have to restart application again.
We have seen that if we minimize the application physical memory is coming back to original size (mean additional 350MB is getting reduced) but virtual memory is not changing. I think may be OS have reserved that place for application as memory cleaning is not done properly. But we have make sure that we have release all the memory we use.
Some where on some forum we seen a work around like this,
VARIANT_BOOL bstatus;
m_pXMLDomDoc->loadXML(CComBSTR(""), &bstatus );
Release(m_pXMLDomDoc);
That guy suggested that after you release saved document try to load a blank file. It will remove uncleaned area. But there is not much improvement. Please let me know if someone can help me.
|
|
|
|
|
Using which tool did you check the Memory usage? If you checking this from the task manager of window XP, I must say that you should consider only the VM usage, the memory usage it specifies is actually Working Set.
I dont remeber excatly, but there was problem with DOM parser such that it will release the memory completely only when the thread( that created DOM objects are created) is terminated. You can try like, create a dedicated thread to read the data from the XML and once it is done, end that thread and check whether the memory is back to normal or not( VM size, not Memory usage ).
|
|
|
|
|
Ya I am using task manager only.
I also tried to save in thread but no improvements. Same behavior.
|
|
|
|
|
HI,
I have X.dll with some 2-3 functions.
I need to create another Y.dll which calls the X.dll functions.
I can import X.dll and its function and use in .exe
But i don't want to do that.
I need to know how to make it an .dll file with different function prototype.
Can anyone pls. help on this issue.
|
|
|
|
|
The process is just the same as making X.dll, which probably used the functions of some other (Windows) dll. Just add the relevant header files to your source code and the X.lib to the link section of your build.
It's time for a new signature.
|
|
|
|
|
Do i need to call the load library function and Get procAddress in it to load the X.dll or not.
If so,I should have another function prototype which calls this dll's function and should return some value right?
I am confused in this.
can u giv any sample code link pls.
I am struggling on this
|
|
|
|
|
induvijay wrote: Do i need to call the load library function and Get procAddress in it to load the X.dll or not.
Well Karsten suggests (below) that you should, but it is really a matter of choice which method you use. Link and load or dynamic load.
If you are not using load library then, as I said before, you need to include the header for the X prototypes into your Y project. There is nothing really in this that is different to creating an EXE that uses the X.dll library; the difference is just the type of file created by the linker.
It's time for a new signature.
|
|
|
|
|
Hi,
I cant understand what u r saying.so pls go thru the code.
This is the code i wrote to create another dll.
Is it correct.
I dont know what mistake i have done here.
Pls.tell me what mistake i have done.
MultipleFn.DLL is my X.dll
The code i have given here is my Y.dll.This dll should call the function of X.dll.
Then i can create an .exe file which can call Y.dll.
The result should return the value by calling the function in X.dll from Y.dll.
I think now it will be clear.
#define DLLEXPORT __declspec(dllexport)
#define EXTERNC extern "C"
This is the function prototype i need to export from Y.dll
EXTERNC DLLEXPORT int Addition(int ,int);
typedef int *AddFunc1();
AddFunc1 _AddFunc;
This is my X.dll
HINSTANCE hInstLib = LoadLibrary("MultipleFn.dll");
int Addition(int a,int b)
{
if ( hInstLib != NULL )
{
FARPROC _AddFunc ;
_AddFunc = GetProcAddress ( hInstLib , "Add" ) ;
if ( _AddFunc != (FARPROC)NULL )
{
int c;
c = _AddFunc();
std::cout << "Loaded Successfully" << std::endl;
}
else
{
std::cout << "Failed to Load " << std::endl;
}
FreeLibrary ( hInstLib ) ;
}
return true;
}
modified on Thursday, July 15, 2010 9:14 AM
|
|
|
|
|
induvijay wrote: cant understand what u r saying.so pls go thru the code.
Nor me, please do not use txtspk but spell your words in full so people can understand you.
Also put your code between <pre></pre> tags so it shows in a readable format.
As to your code above, it seems a little confusing (why does X.dll try to load itself?); may I suggest you read through this article[^] to get a clearer understanding of building DLLs.
It's time for a new signature.
|
|
|
|
|
Hi,
Thanks for your comments and reply.
the article is for calling dll in application.
I don't want that.I need to know how can i give reference for
dll in another dll.
I need to create two dll X and Y.
X.dll will have some functions exported.
Ex: double MyMathFuncs::Add(double a, double b);
Y.dll will have different function name but it should refer the function of X.dll.
Ex:double MyMathFuncs1::Addition(double a, double b);
This Addition function should call Add function in X.dll
then I will create an application which calls Addition function name
But i should get the result of Add in X.dll
Is it possible?
I think now it be clear for you that what i want to do.
|
|
|
|
|
This is not at all difficult. Just create your X.dll in the normal way, then create your Y.dll in the normal way, with a reference to the function in X. Then create your application with a reference to Y. You can nest as deep as you like.
It's time for a new signature.
|
|
|
|
|
Hi,
Can you give any sample code that does this.
Because i am struggling with this for past 2 days and its very urgent.
one more How to give reference to my X.dll in Y.dll
|
|
|
|
|
induvijay wrote: Can you give any sample code that does this.
I gave you a reference yesterday; go and read the documentation which explains how to create a dll. As I keep saying it is exactly the same whether it has references to another dll or not.
induvijay wrote: How to give reference to my X.dll in Y.dll
As I keep saying, the same way you would if it was an exe file.
It's time for a new signature.
|
|
|
|
|
it is better for that to use dynamic loading and accesing like that
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
PGNSI pGNSI = (PGNSI) GetProcAddress( GetModuleHandle(TEXT("kernel32.dll")), "GetNativeSystemInfo");
if(NULL != pGNSI)
{
pGNSI(&si);
return true;
}
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
Hi,
Thanks for ur reply.
I am using this method.Will it built as a .dll file
|
|
|
|
|
Hi Have created a Editbox derived from CEdit and a spin control. The editbox is attached with Spin control. There should be time value in Edit box and the value (hr ,min ,AM/PM) should increase or decrease according to up and Down arrow of the spin control. Can anyone plese help me how to increse or deecrease the particular selection using spin control.
any help is appriciated..
Thanks..
|
|
|
|
|
Why dont you use the DateTimeControl instead of edit box?
|
|
|
|
|
I need to customiza the control. There will be some image on up and down arrow of the spin control and also some gradient effect shud be there in edit box.
Is these thigs are possibe in datetimeControl ? if ys then please guide me hw to do ?
Thanks..
|
|
|
|
|
AbhiHcl wrote: There will be some image on up and down arrow of the spin control
If you have customised a normal spin control, you can customise, the spin in the Date time picker also. The spin control is actually a child of the Date time picker and you can get the handle of that spin control like HWND hSpin = GetWindow( hDateTimerPicker, GW_CHILD ); . Then you can subclass it.
AbhiHcl wrote: and also some gradient effect shud be there in edit box.
How did you plan to do that? Try the same will work in Date time picker also..
|
|
|
|
|
GetWindow() takes only one parameter as HWnd. I m not clear how to proceed..
Can u plz send me some sample code..plzzz...
|
|
|
|