|
thanks for the reply..
But as i have mentioned , i am using static linking...ie there is no dll. only Lib file.
Could you confirm the same.
also what is the error cannot open file "MathLib.obj" means. when I already added the LIB file using the setting->link->general->object/library module
Thanks in advance
I am a beginner
<div class="ForumMod">modified on Wednesday, March 4, 2009 3:31 AM</div>
|
|
|
|
|
Okay let's troubleshoot that one. Remove all types of references to your lib.
just add this pragma to include you lib (example) :
#pragma comment(lib,"C:\\yourclass\\Win32StaticLib.lib")
And try the same. I think you are referring to a wrong path. Just check and tell me. Here in static lib you dont need to export or anything. You can simply type in the code and build the lib and start using it. I just tried a sample. Everything works fine.
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
thanks
I did the same...But got thte following errors...
svcrtd.lib(cinitexe.obj) : warning LNK4098: defaultlib "libcd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
DemoDlg.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall abc::~abc(void)" (??1abc@@UAE@XZ)
DemoDlg.obj : error LNK2001: unresolved external symbol "public: int __thiscall abc::myFunc(int,int)" (?myFunc@abc@@QAEHHH@Z)
Please help me
Thanks
I am a beginner
|
|
|
|
|
just for your clarification..
I have a class abc .the header file is as follows
// abc.h: interface for the abc class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ABC_H__B8AC41A0_E396_422A_A532_0E8412AD2D02__INCLUDED_)
#define AFX_ABC_H__B8AC41A0_E396_422A_A532_0E8412AD2D02__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class abc
{
public:
abc();
~abc();
int myFunc(int ,int);
};
#endif // !defined(AFX_ABC_H__B8AC41A0_E396_422A_A532_0E8412AD2D02__INCLUDED_)
the implementation file is as follows
// abc.cpp: implementation of the abc class.
//
//////////////////////////////////////////////////////////////////////
#include "abc.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
abc::abc()
{
}
abc::~abc()
{
}
int myFunc(int a,int b)
{
return (a+b);
}
thnaks
I am a beginner
|
|
|
|
|
himangshuS wrote:
int myFunc(int a,int b)
{
return (a+b);
}
This is wrong. You need to prefix the class' name.
int abc::myFunc(int a,int b)
{
return (a+b);
}
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
sorry for that silly mistake..
but its still giving some error..
DemoDlg.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall abc::~abc(void)" (??1abc@@UAE@XZ)
Debug/Demo.exe : fatal error LNK1120: 1 unresolved externals
actually to use the method, I made a object of abc and used as follows..is that fine?
#include "stdafx.h"
#include "Demo.h"
#include "DemoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "abc.h"
#pragma comment(lib,"C:\\Program Files\\Microsoft Visual Studio\\MyProjects\\dll and lib\\statically lin (LIB)\\MathLib\\Debug\\MathLib.lib")
void CDemoDlg::OnButton1()
{
int aa,bb;
abc obj;
aa=obj.myFunc(1,3);
}
I am a beginner
|
|
|
|
|
Ok I'm still here. Do you have any specific implementation in your destructor? Even if it's yes, Let's try one thing. Just a temporary test, we'll restore it back. Just remove the destructor & try it again. That shouldn't be a problem actually but let's see.
Just remove this piece:
~abc(void);
&
abc::~abc(void)
{
}
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
Okay I'll be away for sometime. If you can wait, let me comeback otherwise someone here will answer you. Good luck Bye.
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
Not a problem...
Anyway thanks for evrything Vunic
I am a beginner
|
|
|
|
|
its a problem of class i guess. When i created a simple function it works. But with a class doesn't work...
I am a beginner
|
|
|
|
|
It's not a problem with the class. Can you send your solution (lib's) to dejavunic_at_gmail ?
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
How to Create a Simple Win32 DLL [^].
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
Hi All,
How can I convert an 16bit grayscale bitmap to 8 bit grayscale bitmap?
Thanks
akt
|
|
|
|
|
Hi everybody,
I'm currently working with 8-bit grayscale bitmap scanned from my HP LaserJet 3055. I am able to read the Bitmap Header and its data into an array of BYTE. I write the values directly into Text File, the result is great! However, I can't create another BMP file using the data array I have.
For 24-bit BMP, what we have to write after the Header is the RGB data, but for the grayscale one we have to use the Color Table, right? How can I use the Color table properly?
Please anyone helps me on how to create an 8-bit grayscale bitmap!
Thanks,
Ing LengIeng
Software Developer
|
|
|
|
|
Hi,
For an 8 bit grayscale image, between the header and pixel data, there will a color map of 256 colors. The color map will hold 256 shades of gray(ie R=G=B).
The actual pixel data will be a reference this color map. So fo creating 8 bit grayscale image do the following steps.
1. Open a file in binary mode.
2. Write Bitmap File header to file.
3. Write Bitmap Info header to file.
4. Write Colormap to file.
5. Write pixel data to file.
6. Close file.
Thanks
Akt_4_U
akt
|
|
|
|
|
Thanks very much, Akt!
But how do I write the Colormap? I wrote the following code, but I didn't get the grayscale anymore; instead, I got a more green color for the new image.
for(int c=0; c<256; c++)
{
fwrite((BYTE*)&bmpInfo.bmiColors[c], sizeof(RGBQUAD), 1, bmpFile);
}
Regards,
Ing LengIeng
Software Developer
|
|
|
|
|
Hope you have read the ColorMap completely from source bitmap. That is you have to allocate enough memory for reading the complete ColorMap(256 colors) for source image.
The following code will do this.
BYTE* pbyThumbImage // This is your source bitmap buffer.
const ULONG COLORMAP_START_OFFSET = sizeof( BITMAPFILEHEADER ) + sizeof( BITMAPINFOHEADER ); // Color map starts after Bitmap file header and Bitmap info header.
UINT uColorMapSize = 256 * sizeof( RGBQUAD );
pBmpInfoHdr = reinterpret_cast<lpbitmapinfo>( GlobalAllocPtr( GHND, sizeof( BITMAPINFOHEADER ) + uColorMapSize ));
memcpy( pBmpInfoHdr->bmiColors, ( pbyThumbImage + COLORMAP_START_OFFSET ), uColorMapSize ); // Now complete colormap information is within your pBmpInfoHdr->bmiColors.
Now you can write this colormap to destination file using fwrite with input buffer as pBmpInfoHdr->bmiColors and size to be written as uColorMapSize.
akt
|
|
|
|
|
But soon after I've finished reading the Colormap, I displayed the value of each RGB I can see that the color itself is of color more than the grayscale. I did so by comparing the RGB I get with the value in Microsoft Paint (mspaint.exe). That's why the result of the new image is rather a color one. How can I solve this?
Ing LengIeng
Software Developer
|
|
|
|
|
Which value did u take? R G and B from color map?
akt
|
|
|
|
|
Hi Akt,
Now I've solved my problem. I make the Colormap again by myself through the loop, and write it into the new bmp.
Thanks a lot!
Regards,
Ing LengIeng
Software Developer
|
|
|
|
|
Hi all,
I placed two edit boxes and two buttons in my dialog. I want to click the first button to clear the first edit box , and click the second button to clear the second edit box .
In the function of clicking the button, writing the following:
void CSerialPortTestDlg::OnBnClickedClearrec()
{
m_sEditRec.Empty();
UpdateData(0);
}
void CSerialPortTestDlg::OnBnClickedClearsend()
{
m_sEditSend.Empty();
UpdateData(0);
}
However, when I click one button , both edit boxes are cleared!!!
Could someone tell me why ?I write these codes in vc6.0 and it's no problem.
|
|
|
|
|
It looks like the DDX variable attached to second edit box is empty. So when you make an UpdateData(false), the editbox would get cleared. First save the value into the variable. In this case you might have used a CString. Assign some value for the string. If you want to keep the value that you entered in the edit box, first call UpdateData(true). Then try it wont get cleared.
Also don't save UpdateData(0), looks ugly. use "true-false".
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
Thanks a lot! I understand!
|
|
|
|
|
This is one of the reasons why UpdateData() should be avoided. Use this instead:
void CSerialPortTestDlg::OnBnClickedClearrec()
{
m_editRec.SetWindowText("");
}
void CSerialPortTestDlg::OnBnClickedClearsend()
{
m_editSend.SetWindowText("");
}
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
But this one won't clear the data. So won't that go out of sync, in case if he is using the CString variable after clicking these buttons?
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|