|
hello everyone
im trying to make a c++ program that rar files.
i mean i take "blabla.avi"
and it will compress it in store method to blabla.rar
and split on 15000000 byets..
now i tryed to opened few rared files with hex editor and i manged to find thats its something like
header
filename
data from orginal file, not compressed or something because its store method
then a few more bytes..
my problem is i dont understand the header...
i tryed and searched @ google but i cant understand any explantion
here is a demo of one header:
526172211A0700CF907300000D00000000000000445374208027000300000003000000024DB1ED18368A6E361430070020000000
p.s:
if its not the right forum plz move it i didnt know where to post this
|
|
|
|
|
You can find the "UnRAR source" here: http://rarlabs.com/rar_add.htm[^]
In this package, there's a file headers.hpp , which contains all the block definitions.
I think there's some real specification, too (at least there was some time ago), but I couldn't find it anymore at the first glance.
|
|
|
|
|
thnx but it didnt much helped, i've been there before..
wasnt able to understand whats going on @ this header file
too much old header and stuff..
i just want to know what each byte means @ the header of the rar
but thnx anyway for trying to help
|
|
|
|
|
I have an Win32 application. I want to make this application singleton, how to do it. Please advice.
What do I need to do to Winmain() function to make the whole application Singleton. Any help greatly appreciated.
Thanks
Turbo.
|
|
|
|
|
By singleton do you mean only one instance runs at a time?
If so...something like this (taken from MS recommended method):
HWND hMainWnd;
if ((hMainWnd = ::FindWindow("MyMainWindowClass", 0)) != 0)
{
HWND hChildWnd = ::GetLastActivePopup(hMainWnd);
::SetForegroundWindow(hMainWnd);
if (hChildWnd != hMainWnd)
::SetForegroundWindow(hChildWnd);
return 0;
}
"Great job, team. Head back to base for debriefing and cocktails."
(Spottswoode "Team America")
|
|
|
|
|
Is this a service application? If so then the code I posted doesn't apply. You'd need
some other form of interprocess communication to check for another instance. A named pipe is a
simple solution.
The code I posted is for a GUI app (an app with at least one window).
Mark
"Great job, team. Head back to base for debriefing and cocktails."
(Spottswoode "Team America")
|
|
|
|
|
Yes Singleton in the sense I want only one Application exe running. I dont understand how to use the above code. My Winmain() looks like this. Can you please tell me how to use your code in this function.
<br>int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
<br>{<br>DWORD dData=0;<br>g_hServiceStopEvent = CreateEvent(NULL,TRUE,FALSE,NULL);<br>g_hMainThread=CreateThread(0,0,Func_MainThread,0,0,&dData);
<br>while(TRUE)<br>{<br>MSGmsg;<pre><br><br>if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))<br>{<br>
<br>else<br>{<br>WaitForSingleObject(g_hServiceStopEvent,500);<br>} } CloseHandle(g_hServiceStopEvent); return 0; }
Thank you,
Turbo.
|
|
|
|
|
you also can check hPrevInstance. Using this handler you can control your application. If previous instance existed then you can restrict to create new instance. This idea may be useful to you.
Nice talking to you. If you judge people, you have no time to love them. -- Mother Teresa
|
|
|
|
|
hPrevInstance is always NULL In 16-bit Windows it was useful.
Although, the docs for this do suggest a method:
"Handle to the previous instance of the application. This parameter is always NULL. If you need
to detect whether another instance already exists, create a uniquely named mutex using the
CreateMutex function. CreateMutex will succeed even if the mutex already exists, but the function
will return ERROR_ALREADY_EXISTS. This indicates that another instance of your application
exists, because it created the mutex first. However, a malicious user can create this mutex
before you do and prevent your application from starting. To prevent this situation, create a
randomly named mutex and store the name so that it can only be obtained by an authorized user.
Alternatively, you can use a file for this purpose. To limit your application to one instance per
user, create a locked file in the user's profile directory."
"Great job, team. Head back to base for debriefing and cocktails."
(Spottswoode "Team America")
|
|
|
|
|
I suggest you read Joe Newcomer's article on the subject here[^].
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
|
// Check for the event if not create create the event
HANDLE hnd = OpenEvent(EVENT_ALL_ACCESS, FALSE, "DEVICE_COM_SETTING");
if(hnd != NULL) //event exists = app is running
{
//::AfxMessageBox("Device com setting is already Running");
return FALSE;
}
else
{
CreateEvent(NULL,FALSE,FALSE,"DEVICE_COM_SETTING");
}
|
|
|
|
|
Hi,
Actually i have dialog based application that need to support more than one language.All the language text available in header file based on the language selection text can be loaded into dialogs and its controls(working fine for French). when i do the same with Japanese only i could see only consecutive squares. Any one suggest how do i over come this problem?
Thanks,
Rameshkanth
|
|
|
|
|
Hi all,
I'm writing an application using MFC in VS2005. When I click on the File menu in the app I get an invalid argument exception. When I looked at the method throwing the exception (_AfxAbbreviateName in filelist.cpp) the exception was thrown by the line:
<br />
ENSURE(cchFullPath < cchMax);<br />
where cchFullPath is the string containg the path and cchMax is the limit to the width of the path that will be displayed. This value has a default value of 30.
The method appears to be intended to abbreviate a path with more characters than 30. However, unless I'm greatly mistaken it just throws an exception after 30 and so the list cannot be filled.
Has anyone seen this before and come up with a work around?
Thanks
Philosophy: The art of never getting beyond the concept of life.
|
|
|
|
|
Hi,
I want to add a new function in the existing CShockwaveFlash class.So,for that i changed class id of that class .It is registering the clsid,but not recognizing that class(Iam not getting any output,instead of that displaying a messagebox to register with the previous clsid).Whether we should not change the clsid ?
Siddharth
|
|
|
|
|
siddharthsan wrote: I want to add a new function in the existing CShockwaveFlash class.So,for that i changed class id of that class .It is registering the clsid,but not recognizing that class(Iam not getting any output,instead of that displaying a messagebox to register with the previous clsid).Whether we should not change the clsid ?
thats not possible buddy in general scenario.. either you have to make your own wapper com component or reenginneer the shockwaveflash class
|
|
|
|
|
Hi have written an addin for the Outlook 2003. All in-coming mails are proparelly backup in the .Msg file at particular location on the disk. The objective of the saving the file in the .MSG format is that on double clicking on the .Msg file it will open in the MS Outlook, or even if we do drag and drop it will open in MS Outlook. The basic thing i want to do is to set passward to .Msg file for opening in MS Outlook. It should either ask for user name and passward or any other strategy of authetication Once it passes this user name and password it should open in MS Outlook, Help me...
Ganesh Paul SPIAN
|
|
|
|
|
Hello,
I have derived a class from CWnd with window styles
WS_VISIBLE | WS_CHILD |WS_BORDER |WS_MAXIMIZEBOX |
| WS_SYSMENU | WS_CAPTION |WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL
I can now see the scroll bars with the window but do not know how to program them.Once the application is executed on clicking on the scrollbar the function OnHScroll is called.
But I have written nothing in it for the screen position to shift.
How should I go about writing the code in OnHScroll()
Prithaa
|
|
|
|
|
|
I've answered this a couple times for you. There's several CWnd member functions for accessing
and controlling the scrollbars, none of which involve a CScrollBar class object (which is for
scrollbar controls, not window scrollbars).
For window scrollbars IGNORE the (NULL) CScrollBar pointer passed to OnHScroll/OnVScroll.
Mark
"Great job, team. Head back to base for debriefing and cocktails."
(Spottswoode "Team America")
|
|
|
|
|
Hello,
Thanks for the support and repeatedly answering.
I have got it and will not trouble with same questions again.
It seems I am stuck somewhere else.
Prithaa
|
|
|
|
|
The point is - CWnd methods, not CScrollbar methods.
Mark
"Great job, team. Head back to base for debriefing and cocktails."
(Spottswoode "Team America")
|
|
|
|
|
i am new user to richedit . i am using CRichEditCtrl class. i am using the
FindText function for finding a text but it returns only the first occurence.
So Please Help Me.
Remember Using CRichEditCtrl class .not RichEdit Doc/View
|
|
|
|
|
The FINDTEXT structure takes a CHARRANGE that indicates the range of text to search. When searching for the "next" or "previous" match, you set the range to exclude previously searched texts (e.g. you start the search at the end of the last found match).
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Hi all
When a build is project built.Lot of files r created in Debug or Release Folder.How to get .asm file in VC++......
In Turbo C i get it like this...
//add.c
main()
{
int a,b,c;
a = 10;
b = 20;
c = a + b;
}
save the above program as add.c
then compile as follows
c:> tcc -S add.c
VIBIN
"Fool's run away,where angle's fear to tread"
|
|
|
|