|
Hi to all,
I am using VC++ 2005 and trying to employ LiteUnzip a series of ZIPPED files but once I retrieve the file names within the ZIP I would like to decompress them using an alternate path, so I am trying to override ze.Name and give it a path which has been defined within a String.
Take a look at the code below to get an idea where I'm coming from:
private: void UnZIP(String^ file,String^ source, String^ target)<br />
{<br />
HUNZIP hz;<br />
ZIPENTRY ze;<br />
String^ inFile;<br />
String^ outFile;<br />
String^ fileName;<br />
DWORD numitems;<br />
<br />
inFile = source + file;<br />
pin_ptr INFILE = PtrToStringChars(inFile);<br />
UnzipOpenFile(&hz,INFILE,0);<br />
<br />
ze.Index = (DWORD)-1;<br />
UnzipGetItem(hz,&ze);<br />
numitems = ze.Index;<br />
<br />
for(ze.Index = 0;ze.Index < numitems + 1;ze.Index++)<br />
{<br />
UnzipGetItem(hz,&ze);<br />
<br />
String^ systemstring = gcnew String(ze.Name);<br />
fileName = Path::GetFileName(systemstring);<br />
delete systemstring;<br />
<br />
outFile = target + "\\" + fileName;<br />
ze.Name = outFile; <---- Need to find a way to convert a String to an acceptable type.
UnzipItemToFile(hz,ze.Name,&ze);<br />
}<br />
<br />
UnzipClose(hz);<br />
}
Cheers
Fritzables.
|
|
|
|
|
The following file is a sample from the book <thinking in="" c++="">,
but it cann't be compiled correctly in VC2005, please help me.
#ifndef TSTACK2_H
#define TSTACK2_H
template<class t=""> class Stack
{
struct Link
{
T* data;
Link* next;
Link(T* dat,Link* nxt)
:data(dat),next(nxt)
{
}
}* head;
public:
Stack():head(0)
{
}
~Stack();
void push(T* dat)
{
head = new Link(dat,head);
}
T* peek() const
{
return head ? head->data ;
}
T* pop();
class iterator;
friend class iterator;
class iterator
{
Stack::Link* p;
public:
iterator(const Stack<t>& tl):p(tl.head)
{
}
iterator(const iterator& tl):p(tl.p)
{
}
iterator():p(0)
{
}
bool operator++()
{
if (p->next)
p = p->next;
else p = 0;
return bool(p);
}
bool operator++(int)
{
return operator++();
}
T* current() const
{
if(!p) return 0;
return p->data;
}
T* operator->() const
{
require(p!=0,
"PStack::iterator::operator->returns 0");
return current();
}
T* operator*() const
{
return current();
}
operator bool() const
{
reutrn bool(p);
}
bool operator == (const iterator&) const
{
return p==0;
}
bool operator!=(const iterator&) const
{
return p!=0;
}
};
iterator begin() const
{
return iteraotr(*this);
}
iterator end() const
{
return iterator();
}
};
template<class t=""> Stack<t>::~Stack()
{
while(head)
delete pop();
}
template<class t=""> T* Stack<t>::pop()
{
if (head==0) return 0;
T* result = head->data;
Link* oldHead = head;
head = head->next;
delete oldHead;
return result;
}
#endif
|
|
|
|
|
Put typename in front of Stack::Link to help the compiler to deduce Stack::Link as a type;
class iterator
{
typename Stack::Link* p;
--
=====
Arman
|
|
|
|
|
Thank you very much. The problem has been solved.
|
|
|
|
|
Developed a problem linking, merely by moving code to a New Directory.
Compiler version VCP6.0. First it complained about Linking error 2005, Same functions tried to link to MSVS42D.lid and 'nafxcwd.lib'. Solved this in the end by explicitly excluding 'nafxcwd.lib'. Compiles and links fine, but when trying to run in debugger states that there is no debug info included in the file.
Anyone any idea's??
LateNightsInNewry
|
|
|
|
|
yup you need to copy over the pdb files and place them where the debugger can find the debug symbols.
from the menu: tools ---> options
in the dialog select debugging -->symbols
locate the symbols files and make sure you're pointing to them!
Yours Truly, The One and Only!
|
|
|
|
|
Thanks,
Tried that, I'm using MSDevStudio 97 and VCPP5.00 (NOT 6.00 as I erroneously stated earlier) I've got only one pcb file: 'vc50.pdb' Tools->Options is a property sheet. Under the Debug tab is an entry 'symbols' which consists of a checkbox, (which is checked), and No way of pointing anything to it.
None of the other tabs appears to have entries which relate to the subject.
The other repository of settings is Build->Settings. Again, nothing of apparent interrest, safe to say that all paths seem to point where they should. vc50.pdb is in the debug directory, along with the excecutable.
Full rebuilds had been tried at every step in first instance, but to no avail.
This file vc50.pdb is where the trouble started. An alternative name cannot be specified, so when trying to develop a suite with several executables, and a number of dll's, there appears to be no way of assembling the lot in a single arena.
LateNightsInNewry
|
|
|
|
|
In addition to NightOwl's response, you may (or not) need to do a full rebuild - I'm not sure
but maybe the PDB files store complete paths.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
This episode brought to you by the number 3
|
|
|
|
|
Thanks,
Tried that, but see my reply to NightOwl above
Regards,
LateNightsInNewry
|
|
|
|
|
Hi guys, this is my first post here.
Quick, maybe stupid question, just the way I'm doing this doesn't seem right.
I'm doing an assignment that manipulates and generates some genealogy data and
I'm having a problem figuring out for this part if my code is correct.
This is the assignment prompt for specific part i'm having a problem with:
A default constructor with three arguments (in the same order listed above) that sets the three data members to the values of the arguments. Each argument should be given a default value of 0 in the method prototype.
This is the coding I currently have for that declaration that I'm unsure of:
Date(int day = 0, int month = 0, int year = 0);
Any help here would be greatly appreciated, want to make sure I get this assignment right after
the grades on the last couple! Haha
Thanks guys.
mr. chips
|
|
|
|
|
Does it compile? Quick glance it should...
"Any sort of work in VB6 is bound to provide several WTF moments." - Christian Graus
|
|
|
|
|
Default values should appear in the Declaration, and Not in the implementation of the Function. What you wrote implies that one
can construct as follows:-
Date::Date(int day = 0, int month = 0, int year = 0);
Date d;
Date d1(7);
Date d2(7,5);
Date d3(7,5,4);
This will initialise EXACTLY the same at:-
Date d(0,0,0);
Date d1(7,0,0);
Date d2(7,5,0);
Date d3(7,5,4);
LateNightsInNewry
|
|
|
|
|
I want to change the height of the title bar of a dialog?
Thanks.
GOOD LUCK
|
|
|
|
|
Handle the WM_NCCALCSIZE message.
|
|
|
|
|
thanks.
And would you like to give me a guid to do this?
|
|
|
|
|
kcynic wrote: give me a guid
// {BD04FCCA-6D18-44a7-B841-A32D429408CA}
static const GUID kcynicsGuid =
{ 0xbd04fcca, 0x6d18, 0x44a7, { 0xb8, 0x41, 0xa3, 0x2d, 0x42, 0x94, 0x8, 0xca } };
Mark Salsbery
Microsoft MVP - Visual C++
This episode brought to you by the number 3
|
|
|
|
|
I'm sorry,I meant give me a guide which I can follow.
Thanks.
|
|
|
|
|
I know - sorry, I couldn't help it - you set yourself up for it
Maybe this article will help: How To Draw a Custom Window Caption[^]
With a different size caption you'd probably want to handle the WM_NCHITTEST Notification[^]
as well.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
This episode brought to you by the number 3
|
|
|
|
|
That was pretty funny.
|
|
|
|
|
Yes,but only a little.Who mede the two words so simulated!
But I remain want someone would help me.
|
|
|
|
|
RegisterServiceProcess function is available only for 98 and me... do any one know the function equivalent to registerserviceprocess for using in win32 api applications ???
|
|
|
|
|
9x "services" and NT services are completely different animals. There are lots and lots of articles here and on MSDN about writing NT services.
|
|
|
|
|
What is the significance of operator new? why is it used sometimes instead of new operator?
|
|
|
|
|
If you get a good, new C++ book then you can find answers to the above questions (and to many others of the millions you posted before).
you can try to (m)alloc (ate) a bit amount of your money to buy a good C book too.
This can help you to delete some of the naive questions you're about to post and make us free to answer to other people.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
I think he is simply looking for answers to his homework assignments.
|
|
|
|