|
I have finally finished my program. I let some friends download it and they got some DLL errors. I was wondering how to fix this. I heard there was a certain way to build it which includes all the DLL files needed to run the program but I'm not sure. Any help would be great.
-Raffi
|
|
|
|
|
Yah, you need to compile it with statically linked librarys.
Or you could just package the DLLs with your .EXE
|
|
|
|
|
To find out what dlls your program is using you can open use the Dependency Viewer utility that ships with Visual Studio
Best regards,
Alexandru Savescu
|
|
|
|
|
If you are using MFC, you can link MFC statically. Change your project options to achieve this.
You'll also need to distribute and register any ActiveX controls you are using.
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
I looked through all the options and couldn't find anything about statically linking. Does it have to be done when you first create the project or am I just missing something?
-Raffi
|
|
|
|
|
Which version are you using?
VC++ 6.0?
VC++ 7.0?
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
|
Wel, I dont have 6 installed currently, so I apseaking from memory.
Take Project Options. First tab.
You'll see a combo box, that currently says "Link MFC dynamically". Change that to "Link MFC statically"
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
I feel really stupid now, but thanks a lot.
-Raffi
|
|
|
|
|
Raffi wrote:
feel really stupid now, but thanks a lot
We all feel that way at times
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Hi!
I'm new at MFC and dialog programming. I was just wondering if there is any kind of main loop function in a dialog?
Thanks for your answers
|
|
|
|
|
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/dlgboxes_5lib.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_atl_CDialogImpl.3a3a.DialogProc.asp
-Gile
|
|
|
|
|
MFC hides the message loop from us. That's supposedly the way OOP works. But if you really want to intercept and handle messages, you can do that without too much effort
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
A regular modal dialog created with the Win32 functions contains an internal message pump. However, the MFC version of a modal dialog is still created with CreateDialog. This will allow MFC to control the message loop itself and adds the ability to have the pretranslate message handlers for the dialog.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
I have created CTypedPtrArray'<CPtrArray,FileInfo*>' fileArray; //ignore ' coz i don't have it on my application. ' is only for < to show on this site.
FileInfo is a class name:
<br />
class FileInfo <br />
{<br />
public : <br />
int status;<br />
CString path;<br />
CString name;<br />
CString size;<br />
CString createdTime;<br />
CString lastWrite;<br />
CString lastAccess;<br />
CString type;<br />
};<br />
the problem is when i calling CreateFileArray() from method 1 . no problem at all. but when i call from method 2. there is a run time error. I'm calling the same way. but only calling once at the time. not calling from both of method 1 and 2.
<br />
<br />
void CSMPprojectDlg::CreateFileArray()<br />
{<br />
HTREEITEM hItem = m_TreeCtrl.GetRootItem();<br />
CreateEmptyFileArray();
CreateFileArray(hItem);<br />
}<br />
void CSMPprojectDlg::CreateEmptyFileArray()<br />
{<br />
int size = fileArray.GetSize();<br />
if(size != 0)<br />
{<br />
AfxMessageBox("hi");<br />
for (int i =0;i<size;i++)<br />
{ <br />
FileInfo* fileinfo =fileArray.GetAt(i);<br />
delete fileinfo;<br />
<br />
<br />
}<br />
}<br />
}<br />
<br />
void CSMPprojectDlg::CreateFileArray( HTREEITEM hItem)<br />
{<br />
<br />
while(hItem != NULL)<br />
{<br />
{<br />
<br />
FileInfo *fileinfo= new FileInfo();<br />
fileinfo = (FileInfo*)m_TreeCtrl.GetItemData(hItem); <br />
MessageBox(fileinfo->name);<br />
if(m_TreeCtrl.ItemHasChildren(hItem) )<br />
CreateFileArray(m_TreeCtrl.GetChildItem(hItem));<br />
if(fileinfo->status == FILE)<br />
{<br />
MessageBox(fileinfo->name);<br />
fileArray.Add(fileinfo);<br />
}<br />
}<br />
hItem = m_TreeCtrl.GetNextSiblingItem(hItem);<br />
}<br />
}
why can't i call from method 2?????
<br />
<br />
void CSMPprojectDlg::PrintChecked()<br />
{<br />
UpdateData(TRUE);<br />
<br />
HTREEITEM hItem;<br />
hItem=m_TreeCtrl.GetRootItem();<br />
<br />
if(!(IsAnyItemChecked(hItem,hItem)))<br />
MessageBox("No file is checked!!"); <br />
else<br />
{<br />
printedfileName.Empty();<br />
int respond;<br />
respond= GetLocationAndName(printedfileName);
<br />
if (!respond)<br />
{<br />
printedfileName = "j:\\BlowBackQC\\"+Company+"_"+Job+"_"+CD+"_PrintedFileList.txt";<br />
CString message = "The location and name of the file: \n\t"+printedfileName;<br />
MessageBox(message);<br />
<br />
}<br />
<br />
QC_file.open(printedfileName);
<br />
QC_file<<"\t\t\t Company Name: "<<Company<<"\n\t\t\t CD Number: "<<CD<<"\n\t\t\t Job Number: "<<Job<br />
<<"\n\t\t\t Total File: "<<File_counter<<"\n\t\t\t Total Folder: "<<Folder_counter<<endl<<setw(80)<<setfill('=')<<endl<br />
<<setfill(' ')<<endl;<br />
<br />
if(m_SortingWay == 1)<br />
QC_file<<" Date \t\t Size\t\tEsti_page_print\t\t Ext\t\t FileName\n"<<setw(80)<<setfill('=')<<endl<<setfill(' ')<<endl;<br />
else<br />
QC_file<<" Date \t\t Size\t\tEsti_page_print\t\t FileName\n"<<setw(80)<<setfill('=')<<endl<<setfill(' ')<<endl;<br />
<br />
CreateFileArray();<br />
int size = fileArray.GetSize();<br />
if(size !=0)<br />
{<br />
for(int i=0;i<size;i++)<br />
{<br />
FileInfo *fileinfo = new FileInfo();<br />
fileinfo = fileArray.GetAt(i);<br />
CString a = fileinfo->name +"\n"+ fileinfo->size;<br />
MessageBox(a);<br />
<br />
}<br />
}<br />
QC_file.close(); <br />
<br />
<br />
<br />
}<br />
printingThread =0;<br />
}<br />
}
|
|
|
|
|
I can't help much because I am not afflicted with crappy Microsoft containers, I use the STL.
However -
Win wrote:
//ignore ' coz i don't have it on my application. ' is only for < to show on this site.
You can use ampersand ( shift 7 ) and lt or gt to get the < > symbols, or check the box below that says to display the message as-is.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
And you don't spend much time with the opposite sex working day and night, unless the pizza delivery person happens to be young, cute, single and female. I can assure you, I've consumed more than a programmer's allotment of pizza, and these conditions have never aligned. - Christopher Duncan - 18/04/2002
|
|
|
|
|
Okay, read this. "Enter a 5x6 matrix. Print the original matrix and then print the transpose of the matrix, and the reverse of the matrix." I was handed that and I have no idea what to do. If anyone could send post some sample code to give me an idea of what to do, I'd greatly apprciate it. Thanks. This stupid thing is due tomorrow. Send mail to nywebhead@hotmail.com if you can help. Thanks again,
Mik
|
|
|
|
|
A matrix is the same as a two dimensional array. Do you know what that is ? Your teacher obviously thinks you should.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
And you don't spend much time with the opposite sex working day and night, unless the pizza delivery person happens to be young, cute, single and female. I can assure you, I've consumed more than a programmer's allotment of pizza, and these conditions have never aligned. - Christopher Duncan - 18/04/2002
|
|
|
|
|
Two Dimensional array....hmmmmm.....never heard of it, but I'll look it up. Thanks Christian.
|
|
|
|
|
Ok, when I enter the below code, it says, subscript requires array or pointer type. What does that mean?
#include<iostream.h>
int r,c,x;
int a[100][100];
int b[100][100];
main(){
a[0][0] = 10;
a[0][1] = 11;
a[1][0] = 15;
a[1][1] = 21;
b[0][0] = 10;
b[0][1] = 11;
b[1][0] = 15;
b[1][1] = 21;
for (r=0; r<=4; ++r){
for (c=0; c<=5; ++c){
cout<
|
|
|
|
|
nywebhead wrote:
cout<<x[r][c]<<" ";<="" i="">
x is an integer.
Use a or b which you have declared as 2-d arrays
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Thanks, I figured it out. Geez, this is tedious.
|
|
|
|
|
nywebhead wrote:
Geez, this is tedious.
LOL
Don't worry. It'll get easier as you progress
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Changing the colors of buttons, and edit boxes is easy with Visual Basic, but I've grown up and am now using Visual C++. The problem I have now is that I have no clue on how to change the color of buttons and edit boxes.
Please, Gurus and Masters of C++, please almighty gods, tell me how I can do this. I will worship at your feet if I get a response. I am repentant of my VB ways and am now bowing before you.
|
|
|
|
|
You would either add a handler for OnCtlColor or make the button Owner Draw.
Also look at:
http://www.codeproject.com/staticctrl/coloredit_colorstatic.asp
http://www.codeproject.com/staticctrl/clabel.asp
Instead of using an Anonymous post you might like to Register here at CP which makes us CP regulars happier.
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|