|
Oh fine.... Then my next question would be, how do you make a windo using Win32?
Dont you hate it when you download somthing and it stops at the last second, like at 99%? Well i do. I have now downloaded DirectX8.1 SDK twice. But somthing happends at the last second and it doesnt save the info to the intended folder
oi, i guess i could try it again
~SilverShalkin
|
|
|
|
|
SilverShalkin wrote:
Oh fine.... Then my next question would be, how do you make a windo using Win32?
Ask Visual C to build a Win32 app for you, it will give you all the core code you need. It will define a WndProc, which is where you process windows messages, and a WinMain, which is the entry point.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm somewhat suspicious of STL though. My (test,experimental) program worked first time. Whats that all about??!?!
- Jon Hulatt, 22/3/2002
|
|
|
|
|
SilverShalkin wrote:
Dont you hate it when you download somthing and it stops at the last second, like at 99%? Well i do. I have now downloaded DirectX8.1 SDK twice. But somthing happends at the last second and it doesnt save the info to the intended folder
oi, i guess i could try it again
Get a download manager like gozilla. It does the downloading in pieces, and it saves the state of your downloads if you get disconnected or an error occurs.
|
|
|
|
|
First time useing templates and allthough they arnt needed im useing
them to get used to templates. Im getting erros with i try to declare
my key_table (the class) like key_table< apstring, int> kt;
it give the error:
error LNK2001: unresolved external symbol "public: __thiscall key_table< class apstring,int>::key_table< class apstring,int>(void)" (??0?$key_table@Vapstring@@H@@QAE@XZ)
i dont have anything else in my main except for the statment:
key_table< apstring, int> kt;
i dont know why it would be complaing about it but if im using the
templates wrong please correct me.
#include "assoc.h"
template< class S, class L> class key_table
{
public:
key_table();
key_table(const key_table< S,L> &table);
int length();
bool empty();
void store(const S &target);
bool get_string(const S &target);
key_table operator =(const key_table< S,L> &table);
protected:
int table_length;
int current_string;
assoc< S,L> data[MAX_TABLE_SIZE];
};
#include "onetable.h"
#include <assert.h>
template< class S, class L>
key_table< S,L>::key_table(){
table_length=0;
current_string=0;
}
template< class S, class L>
key_table< S,L>::key_table(const key_table< S,L> &table){
table_length=table.table_length;
for(int j=0;j< MAX_TABLE_SIZE;j++)
data[j]=table.data[j];
}
template< class S, class L>
int key_table< S,L>::length(){
return table_length;
}
template< class S, class L>
bool key_table< S,L>::empty(){
if(table_length==0)
return true;
else
return false;
}
template< class S, class L>
void key_table< S,L>::store(const S &target){
int probe = 0;
bool found = false;
L item=target.length();
assert(table_length< MAX_TABLE_SIZE);
assoc a(target, item);
data[table_length+1]=a;
++table_length;
}
template< class S, class L>
bool key_table< S,L>::get_string(const S &item){
bool success=false;
if(empty)
success=false;
else if(current_string=table_length)
success=false;
else{
current_string++;
item=data[current_string].get_string();
}
return success;
}
|
|
|
|
|
You can't declare the implementation of template classes in your .cpp files. Try moving all the functions inline into your template classes .h file and see how you go.
Hope this helps.
------------------------
Derek Waters
derek@lj-oz.com
|
|
|
|
|
but how do i keep from having one big .h file, i do not wish to declare all my classes in the .h file, thats what the .cpp is for? is it proper/normal programing to defile all the functions in the .h?
|
|
|
|
|
You've hit a limitation of VC and templates, the template code has to be visible in every CPP file, so it has to be in header files.
--Mike--
"Jobs that don't allow you to visit the Lounge 25 times a day at the minimum are not worth having anyway."
-- Nish, 3/28/2002
My really out-of-date homepage
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan and Jamie Salé.
|
|
|
|
|
Is the API functions to create sync files to a folder.
|
|
|
|
|
Folks,
How can I link a DLL (that i wrote years ago) into an EXE. I thought I saw a web page or something in MSDN on how to do this but after searching for this afternoon w/o turning up anything I'm turning to you guys to see if there is an answer.
(Yes I know it defeats the whole purpose of DLLs but I really need to release a single binary module.)
Thanks,
Al
|
|
|
|
|
Here has a Tool that may help you.
http://www.binary-soft.com/dll2lib/dll2lib.htm
|
|
|
|
|
Does this thing actually work? I have been looking for something like this for a LONG time, I will be VERY happy if this thing works!
Chris Hafey
|
|
|
|
|
Questioner? (Visitor)
I need to write a small program that will assign the letter 'S' to an array a number of times, depending on how many times I ask for;;
That means if I chose number 5, then the program will assign S five times inside the array "let's say array[0]" so array[0]=SSSSS
Thanks
|
|
|
|
|
memcpy( array_to_write_to, char_to_write, num_of_chars_to_write );
i.e. to write S 5 times to array we would do this, assuming the array was already initialized:
memcpy( array, 'S', 5 );
you need to put the S in the '' so the compiler knows it's a "character constant", rather than the name of a variable.
Hope that helps,
Pete
|
|
|
|
|
Hi,
I actually have 3 ?s:
1- How can I convert a CString to a c-char (char[25]) and vice-versa.
2- How can I convert a CString to a int, fl int or other number holder.
3- How can I extract a certain portion of a CString, like the first 2 chars for example.
// JS Paquet
cout << "Thank you all" << endl;
|
|
|
|
|
1) If you don't need to modify the char array, you can simply cast a CString to an LPCTSTR (long? pointer const TCHAR string):
LPCTSTR apszBuffer = (LPCTSTR)m_MyCstring;
If you need to modify the buffer, you need to use GetBuffer and ReleaseBuffer:
LPTSTR apszMyBuffer = m_MyCString.GetBuffer(m_MyCString.GetLength());
m_MyCString.ReleaseBuffer(25);
2) Use atoi, atof (or _ttoi for wide-char compatibility):
int viValue = atoi("25478");
float vfValue = atof("123.456");
3) Use CString::Mid():
CString vstrBit = m_MyCString.Mid(0, 2);
CString vstrAnother = m_MyCString.Mid(5, 4);
Hope this helps.
------------------------
Derek Waters
derek@lj-oz.com
|
|
|
|
|
Hello. I'm just starting out in VC 6.0. I'm using MFC Appwizard, and have created a test program. I've got it so far where you click on a button and a MessageBox pops up. I was wondering, I want to add some code in there that will automatically Minimize the current window. So, you'll click on my "test" button, and it will automatically minimize the window. Can anyone please point me in the correct direction?
|
|
|
|
|
Yep:
CMyDialog::OnTestBtn()
{
ShowWindow(SW_MINIMIZE);
}
Hope this helps.
------------------------
Derek Waters
derek@lj-oz.com
|
|
|
|
|
First off you might want to use AfxGetMainWnd(), which returns a pointer to the main application window.
You could then use CWnd::ShowWindow( SW_MINIMIZE ) to minimize it. So all together you've got:
CWnd *pMainWnd;
pMainWnd = AfxGetMainWnd();
pMainWnd->ShowWindow( SW_MINIMIZE );
Tada!
Hope that helps,
Pete
|
|
|
|
|
Hey all!
I'm semi-desperate.
I developed an ActiveX control that runs within IE, using ATL.
In it, I use owner-drawn controls and common controls (listview, tabbed control).
Sometimes (more often on win98 than on win2k / xp), when a dialog (generated by the ActiveX or by another application) covers part of the ActiveX, and then is removed (closed, not dragged away) - some (or all) of the area that was previously covered is not repainted.
This behavior startled me - so I decided to use remote debugging, to hunt down the WM_PAINT and related messages. I was able to recreate a procedure during which a dialog covered part of the ActiveX - and when I removed it - one of the owner-drawn buttons was not repainted (a grey rectangle appeared instead of the button's image).
I put a breakpoint inside ATL's ProcessWindowMessage (the function that is inserted by the BEGIN_MSG_MAP(<class name="">) macro).
After dismissing the dialog - NO MESSAGES WHATSOEVER were sent to the application!
I also noticed that sometimes when a convering window is closed and the ActiveX seems to be properly repainted - no messages are received (as if Windows "remembered" the content of the control).
Sometimes even tooltips leave a grey rectangle behind them when they disappear! (this happens a lot in Win98).
The ActiveX control has its own HWND.
Im not sure I fully understand the way the ActiveX control receives messages. Does its window receives messages directly from Windows, or do messages somehow pass through IE?
And at any case - can anyone offer a solution to this problem? (or at least give me a lead...)
Thanks a lot in advance!
Oz
|
|
|
|
|
Hey,
you may already have the answer to your question, but if you don't I might be able to point you in the right direction. I recently dealt with a host of ActiveX issues myself, and I recalled reading that messages are dispatched to the container class, and you are responsible for getting those messages, and passing them through to your control.
Check out the MSDN Topic "Active Technology" and go from there, I beleive you'll find at least an example of how messages are passed to the control.
In terms of Win98 Repaint messages not being sent, don't know about that, but I would install the latest Service Pack and the latest Video Card drives on that machine before I started pulling my hair out.
D.
|
|
|
|
|
Hi everyone,
Maybe a stupid question but I have to ask...
When we create a EXE and give it to somebody else, there`s is an error about some missing DLLs.
I think it`s related to VC++ since they don`t have that application on their computer. Is there a way to know which DLL I have to pack with the EXE ? (Please, don`t tell me to try it on an other computer and write down the names of the DLLs that are missing )...
Also, by default, when we create a project (like win32 application), is there a difference between debug and release configuration ? Like is the debug configuration requires those DLL and release doesn`t ? Thk in advance !
|
|
|
|
|
You can avoid this problem by linking statically instead of dynamically.
Release mode builds the program without debug information and with optimizations.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
Thk for the answer...
And where do I go to link statically instead of dynamically ?
F. Filiatrault
|
|
|
|
|
You can find out what DLLs your program requires by running the Dependency Walker (depends.exe) that comes with VC++.
The difference between debug and release builds is that debug builds use MFC42D.DLL and MSVCRTD.DLL instead of MFC42.DLL and MSVCRT.DLL (no D's). The debug versions of these are not redistributable, so you should only distribute Release versions of your software. As described in the earlier post, linking statically removes the hassle of having to distribute these DLLs with your program, however, you may need others that depends.exe will show you.
------------------------
Derek Waters
derek@lj-oz.com
|
|
|
|
|
Hi again,
thk for the answer. With DEPENDS.EXE, it shows KERNEL32.DLL & NTDLL.DLL. I don`t think I have to include those files. So, here`s two other questions :
1) How can I know which one of those DLL other users have
2) I have WinXP, what happen if I want to give my EXE to someone with a older OS version like Win98 ?
thk in advance !
F. Filiatrault
|
|
|
|