|
akirilov wrote: Invoking methods is slow.
As a famous guy already said: "Premature optimization is the root of all evil". What it means here is that you try to have only optimization in mind even when it makes your code less readable or maintainable. Unless your function has to be called very often and is in a time critical part of your code, I think you can forget about the performances (and you can also rely on your compiler for a bit of optimizations).
If I take your way of thinking to the extreme, you can end up with one gigantic main function because you never wanted to make function calls...
akirilov wrote: Anyway could you share a code fragment that will do the trick (with pointers) (if possible with int)?
I think you should learn that because it provides type safety which is not the case when working with ints containing an address. What kind of data are you manipulating ? An array of ints ?
|
|
|
|
|
1. As far as i know there's no standard way to do that.
2. What do you mean? If you want the address of the Mem variable, then use &, so &Mem. If you store a memory location in Mem, then use a pointer type, like int *Mem, but if you want to convert int to a pointer, then you can use for example (void *)Mem.
3. You can declare const "variables" to which you specify a value and then it cannot be modified anymore. For example const int m_Constant;, you would give a value to this in the contstructor of yor class. If you want to modify a variable "inside" the containing class but not outside then declare it as protected or private amd supply either a Get method for it or a const reference to it. so if you have int m_variable; then you can do either const int &GetVariable() { return m_variable; } or you can do const int &m_constVariable; and initialize this in the constructor using m_variable.
|
|
|
|
|
2. With some code will be easier to explain:
int Mem;
...
Mem = LocalAlloc(LHND, ...);
...
WriteFile(f, (void *) Mem,...)
I receive exception during runtime, so my question is what expression to use so it will work properly (writes the pointed by Mem block to file)
|
|
|
|
|
Ok, new edit, i misread you there the first time. LocalAlloc gives you a handle to a memory location, not the memory location itself. Declare your variable as HANDLE, not int, since LocalALloc, unless specified differently, will give you a HANDLE. You have to use LocalLock and LocalUnlock to actually access the memory. But may i ask why you need to use LocalAlloc instead of new or malloc? So basicly, if you have to use LocalAlloc you have to LocalLock(handle), this will give you a void * pointer that points at the memory you allocated, you can feed this to WriteFile (didn't go into WriteFile itself so i assume you know what you are doing with that) and then use LocalUnlock to unlock the memory, also use LocalFree to free it.
modified on Friday, November 21, 2008 6:36 AM
|
|
|
|
|
LocalAlloc gives you a handle to a memory location, not the memory location itself
Actually, that depends on the first parameter.
In my case (for Windows Mobile) it always return the actual address, so it is OK.
|
|
|
|
|
As i said, "unless specified differently". So if you get a pointer at the memory location why do you store it in an int?
|
|
|
|
|
I agree. But if you insist, then you should just 'cast' it as a pointer when you Write -
<br />
WriteFile(...<br />
(long*)Mem,
...<br />
|
|
|
|
|
Can anyone tell me what is the main purpose of Dll? As we can get the data from Dll, can we put the data in Dll? I am not talking about code, talking about single Dll. If you know about Dll then please share your knowledge..
http://nnhamane.googlepages.com/
|
|
|
|
|
|
Dll is nothing but a reusable code.. its a dead thing it need to invoke from some where ..
by it self DLL cant do anything.
dll can be in any language that supports Pointer Functionality.
Dll is used to process the data
Dll is used to apply Business logic
Dll can be called from any place.
can you please specify what exactly you are looking here in some specific manner???
vikas da
|
|
|
|
|
Nilesh Hamane wrote: Can anyone tell me what is the main purpose of Dll?
Consider you know some function that can be helpful to other programmers and, they are ready to pay you for it, so how would you prefer to give it? you can give your source code, os a better option would be to compile your code as a dll and then sell, because the dll after compilation gets converted to machine code.
Nilesh Hamane wrote: As we can get the data from Dll, can we put the data in Dll?
This is not the purpose of dlls, you should use files or databases for storing your application data.
-Suhredayan
|
|
|
|
|
Hile All
How can i delete shortcut file form desktop?Plz help me
|
|
|
|
|
what is the problem in that? select the file and use shift+ delete button
|
|
|
|
|
Thanks for reply dude..
I want to delete through code.
|
|
|
|
|
Can you not delete it the same way you'd delete any other file? (DeleteFile)
If you're struggling to find the desktop, you can use SHGetFolderPath with CSIDL_DESKTOPDIRECTORY.
Iain.
|
|
|
|
|
i am not struggling to find desktop path,problem is delete shortcut file.So plz give me tips to do that.
Thanks for reply
|
|
|
|
|
Read the first bit of my post. I repeat: "What is wrong with DeleteFile" ?
CString s = szPathDesktop;
s += _T("\\myshortcut.lnk");
if (!DeleteFile (s))
{
dw = GetLastError ();
}
Iain.
|
|
|
|
|
Hi all,
I am facing one problem with my application.
I am using "hnwse.cur" by adding it into resource
code is like
HCURSOR hDragCur = (HCURSOR)LoadImage(_AtlBaseModule.m_hInst, (LPCWSTR)MAKEINTRESOURCE(IDC_HAND_CURSOR),IMAGE_CURSOR, 28, 28, LR_DEFAULTCOLOR);
if(hDragCur)
SetCursor(hDragCur);
This is working fine in Xp but in vista it is showing black hand cursor.
Can any buddy please help me to resolve this problem.
|
|
|
|
|
I wnat to know how can i create a series of edit boxes dynamically.
for exampe in a dialog box there is an edit box and a button. i type in 5 in the edit box and enter the button,
once i click on the button 5 edit box should be created dynamically.. is it possible to do it?
|
|
|
|
|
Yes, take a look at CEdit::Create[^] (BTW, all windows can be created this way).
|
|
|
|
|
Mission Accomplished
Thanks
|
|
|
|
|
Hello,
I need to work with DNS primary lookup zone, rigth now I'm doing it by calling shell, anyone knows which dll should I use to add/remove records?
Thanks in advance
Paolo
|
|
|
|
|
You can use the IP Helper API[^] to add/remove DNS lookup zones. I believe there are some samples of its usage here on codeproject.
Best Wishes,
-David Delaune
|
|
|
|
|
Hiii dear all,
How to compair two GUIds apart from making them const string and then perform strcmp.
Thank you
vikas da
|
|
|
|
|
I would recommend using memcmp()[^]
memcmp(&guidOld, &guid, sizeof(GUID));
Best Wishes,
-David Delaune
|
|
|
|