|
I am sorry but it is impossible to guess what the build process is supposed to be. You need to find the person who set the project up in the first place.
|
|
|
|
|
Thank you Richard , the person has quit... i guess i would need some more time to understand this code.
vikas da
|
|
|
|
|
Sorry I cannot offer any better suggestions. But without seeing the entire project (which I do not want to do) it is difficult to make any useful guesses.
|
|
|
|
|
i am thinking to give some details ,
my CPP file looks like this
... headers
#ifdef _USRDLL
#pragma comment(linker, "/EXPORT:GenerateFiles=?GenerateFile@@YGJPAUHWND__@@PAUHINSTANCE__@@PADH@Z")
#endif
__declspec(dllexport) HRESULT __stdcall GenerateFiles(HWND hwnd,HINSTANCE hinst,LPSTR lpCmdLine,int nCmdShow)
{
/// some code to generate CPP files exposing by the DLL
}
now can i invoke GenerateFiles method during build process some way ?
vikas da
|
|
|
|
|
Sorry, I have no idea. Where is that function called from, and what is it supposed to do?
|
|
|
|
|
here ih the code below i have tried to add two matrix objects and assign it to the third object but it doesn't give expected result and the rather some garbage value.
include <iostream>
using namespace std;
class matrix{
int **p;
int d1, d2;
public:
matrix(int x=20, int y=20);
void get_element();
void put_element();
int checkAdd(matrix &);
matrix operator + (matrix &);
void operator = (matrix );
~matrix(){
for (int i = 0; i < d1; i++)
delete p[i];
delete p;
}
};
matrix temp;
void matrix::operator = (matrix obj){
this->d1 = obj.d1;
this->d2 = obj.d2;
for(int i=0; i<d1; i++)
for(int j=0; j<d2; j++)
this->p[i][j] = obj.p[i][j];
}
matrix matrix::operator+(matrix &obj){
if(checkAdd(obj)==0)
{
for(int i=0; i<obj.d1; i++)
for(int j=0; j<obj.d2; j++)
temp.p[i][j] = this->p[i][j] + obj.p[i][j];
return(temp) ;
}
cout<<"coloumn and rows of both matrix are not equal !"<<endl;
return (*this);
}
matrix ::matrix(int x, int y)
{
d1 = x;
d2 = y;
p = new int *[d1];
for(int i=0; i<d1; i++)
p[i] = new int [d2];
}
int matrix::checkAdd(matrix &obj){
if((this->d1 == obj.d1) && (this->d2 == obj.d2))
return 0;
else return 1;
}
void matrix::get_element(){
for(int i=0; i<d1; i++)
for(int j=0; j<d2; j++){
cout<<"m["<<i<<"]["<<j<<"] = ";
cin>>p[i][j];
}
}
void matrix::put_element(){
cout<<"\n\n";
for(int i=0; i<d1; i++){
for(int j=0; j<d2; j++){
cout<<p[i][j]<<"\t";
}
cout<<endl;
}
}
int main(){
matrix A(3, 2), B(3, 2), C;
cout<<"Enter matrix elements row by row \n\n";
A.get_element();
A.put_element();
B.get_element();
B.put_element();
C = A + B;
cout<<"\n\n";
C.put_element();
return 0;
}
thank you
|
|
|
|
|
I think it may have something to do with your static temp object. Try creating temp inside your operator+ overload.
|
|
|
|
|
but if i create it inside the operator+ function, i wont be able to assign the value of object temp to object C in main(). As temp scope will only be operator+ function and as soon as the operator+ function is called off, the address that i am passing to the C will no longer point to the values of temp object.
|
|
|
|
|
I have not done operator overloading for a while but that is my recollection of how it should be done. You should be able to find some samples through Google.
|
|
|
|
|
|
Hi.
I created a class which is derived from CTabView. In OnCretae() function it created a window with a tab control on window. Later i created few views by calling AddView(). I created 5 view.
Now, when i click on the arrow buttons on the tab control below, my control is not switching the tabs.
May i know which function should i call to switch the tabs on my window?
|
|
|
|
|
|
Hi.
In my MFC application, i created a class which is derived from CTabView and created few tabs(views) using AddView(). Now i want to change the color of the tab views. May i know how to change the background color of those views?
Thanks in Advance.
|
|
|
|
|
|
i am trying to take multiple names by using getchar() but it only taking the first value and just skipping the rest.
here is the code.
#include <stdio.h>
int main()
{
char name[10][30], ch;
int i;
for(i=0; i<10; i++)
{
printf("Enter name: \n");
int j=0;
while(ch != '\n')
{
ch = getchar();
name[i][j] = ch;
j++;
}
name[i][j] = '\0';
}
return 0;
}
|
|
|
|
|
Because at the end of the first time round the while loop ch will contain the newline character, so every other loop will terminate immediately. You must remember to reset variables after you have finished with them. Please get yourself a good study guide on C and learn the language the proper way.
|
|
|
|
|
In addition to what Richard wrote, you have limited the names to 30 characters so make sure more than that are not entered.
|
|
|
|
|
|
i tried adding values to different addresses of arrays by using pointer but it doesn't work.
<pre>#include <stdio.h>
int main()
{
int i, num[10];
int *p;
p = &num[0];
for(i=0; i<=10; i++)
{
(p+i) = i;
printf("\n%d", *(p+i));
}
return 0;
}
|
|
|
|
|
Inside your for loop it needs to have this :
*(p+i) = i;
(p+i) is a pointer incremented by i. You have to dereference the pointer to save a value to where it is aiming.
|
|
|
|
|
if p = address of the num[0] then (p+i) is the address of the ith address and it is where i want to store the value, *(p+i) will give the value at that address i.e. de-referencing, below is the code i tried.
<pre>#include <stdio.h>
int main()
{
int i, num[10];
int *p;
p = &num[0];
for(i=0; i<=10; i++)
{
*(p+i) = i;
}
for(i=0; i<=10; i++)
{
printf("\n%d", *(p+i));
}
return 0;
}
|
|
|
|
|
You are very close. The problem now is your for loops are exceeding the capacity of num. It has 10 elements and your loops go from 0 to 10 inclusively. That is 11 elements - there is no num[11] item so that is a very bad thing.
I don't like literal values so I made the number a const and adjusted the loops :
const int Count = 10;
void main()
{
int i;
int num[Count];
int *p;
p = &num[0];
for( i=0; i < Count; i++ )
{
*(p+i) = i;
}
for( i=0; i < Count; i++ )
{
trace( _T( "item %d is %d" ), i, *(p+i) );
}
return 0;
} Your code looks quite a bit like C but this is a section for ATL/WTL/STL is about C++. If you are actually using C then this code won't compile. You can make Count a macro definition and then it will.
|
|
|
|
|
thank you. And here is the correct code.
<pre>
#include <stdio.h>
int main()
{
int i, num[10];
int *p;
p = &num[0];
for(i=0; i<10; i++)
{
*(p+i) = i;
}
for(i=0; i<10; i++)
{
printf("\n%d", *(p+i));
}
return 0;
}
modified 26-Dec-17 14:24pm.
|
|
|
|
|
|
The recursion used in the final_array function not working.
#include <stdio.h>
int final_array(int arr[], int size, int k, int i);
void array(int arr[], int i, int size);
int main()
{
int num, size[100];
int i, j, k=0;
int arr[100][100];
printf("Enter the number of arrays: \t");
scanf("%d", &num);
num = num < 100 ? num: 100;
for (i = 0; i<num; i++)
{
printf("\nEnter the size of the array: \t");
scanf("%d", &size[i]);
printf("\nEnter the array: ");
size[i] = size[i] < 100 ? size[i] : 100;
array(&arr[i][0], i, size[i]);
}
for(i=0; i<num; i++)
{
final_array(&arr[i][0], size[i], k, i);
printf("\n");
}
printf("\nPress Enter key to exit.\n");
getchar();
return 0;
}
void array(int arr[], int i, int size)
{
int j;
for (j = 0; j<size; j++)
{
printf("\nEnter arr[%d][%d]: \t",i, j);
scanf("%d", &arr[j]);
}
}
int final_array(int arr[], int size, int k, int i)
{
if(k<=size)
{
printf("%d", arr[k]);
final_array(&arr[i][0], size[i], k++, i);
}
else
return 0;
}
modified 16-Dec-17 13:25pm.
|
|
|
|