|
You have to enclose your header into preprocessor to avoir it being copied several times:
#ifndef YOURFILE
#define YOURFILE
...
...
#endif
Post your header file, the problem is perhaps also there because of your variable.
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
Did you see msdn maybe you need to add /FORCE
and whats in header file
whitesky
|
|
|
|
|
This will not work
nave
|
|
|
|
|
i had one problem like this and used this switch and it worked. of course if he shows header file its good
whitesky
|
|
|
|
|
Will u plz try a sample..
nave
|
|
|
|
|
many years ago
whitesky
|
|
|
|
|
|
im very young
whitesky
|
|
|
|
|
did you get my mail (many days ago)
whitesky
|
|
|
|
|
|
my mail for your site
whitesky
|
|
|
|
|
I think this problem will not be solved unless
1.) The variable is decleared in the cpp and decalared extern in the header
2>) Make the variable static
nave
|
|
|
|
|
maybe but if he shows header files is good
whitesky
|
|
|
|
|
I have done that but error now changed from LNK2005 to LNK2001 . I m using multiply() function as well from dll but error is only regarding the variable multiplier.
Now error turns to be:
Linking...
CheckTestDllDlg.obj : error LNK2001: unresolved external symbol "int multiplier" (?multiplier@@3HA)
Debug/CheckTestDll.exe : fatal error LNK1120: 1 unresolved externals
n this is dll header file
//////////////////////////////////////////// simple.h/////////////////
#include "String.h"
#include <afxwin.h> // MFC core and standard components
#ifndef SIMPLE_H
#define SIMPLE_H
long multiply(long no);
#endif
///////////////////////////////////////////////////////////////////////
this is cpp file of Dll
////////////////////////////////////////////simple.cpp ///////////////////////////////////
#include "stdio.h"
#include "simple.h"
static long multiplier=14L;
long multiply(long no)
{
long retval;
retval = no * multiplier;
st.Format("Reslt is %d",retval);
MessageBox(NULL,st,"I",MB_OK);
return retval;
}
///////////////////////////////////////////////////////////////////////
Cyber Friend
Cyber Friend
|
|
|
|
|
sorry i actually want to answer Cedric Moonen
nave
|
|
|
|
|
Naveen R wrote: sorry i actually want to answer Cedric Moonen
Always quote when you answer somebody. That will avoid such kind of confusion .
Yeah, I know that's why I was asking for more precisions to see how he declared his variable.
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
Declare the variable in your header file as extern and define it in one of your .cpp files of your dll.
Nibu thomas
Software Developer
Faqs by Michael dunn
|
|
|
|
|
I have done that but error now changed from LNK2005 to LNK2001 . I m using multiply() function as well from dll but error is only regarding the variable multiplier.
Now error turns to be:
Linking...
CheckTestDllDlg.obj : error LNK2001: unresolved external symbol "int multiplier" (?multiplier@@3HA)
Debug/CheckTestDll.exe : fatal error LNK1120: 1 unresolved externals
Cyber Friend
|
|
|
|
|
Cyber Friend wrote: Linking...
CheckTestDllDlg.obj : error LNK2001: unresolved external symbol "int multiplier" (?multiplier@@3HA)
Debug/CheckTestDll.exe : fatal error LNK1120: 1 unresolved externals
This is happening because you haven't declared it in the .cpp file...
for e.g.
in yourclass.h
extern UINT multiplier;
in yourclass.cpp or some other .cpp file that is in the project...
UINT multiplier = 0;
Nibu thomas
Software Developer
Faqs by Michael dunn
|
|
|
|
|
Hi Thomas,
I have done that but error now changed from LNK2005 to LNK2001 . I m using multiply() function as well from dll but error is only regarding the variable multiplier.
Now error turns to be:
Linking...
CheckTestDllDlg.obj : error LNK2001: unresolved external symbol "int multiplier" (?multiplier@@3HA)
Debug/CheckTestDll.exe : fatal error LNK1120: 1 unresolved externals
n this is dll header file
//////////////////////////////////////////// simple.h/////////////////
#include "String.h"
#include // MFC core and standard components
#ifndef SIMPLE_H
#define SIMPLE_H
long multiply(long no);
#endif
///////////////////////////////////////////////////////////////////////
this is cpp file of Dll
////////////////////////////////////////////simple.cpp ///////////////////////////////////
#include "stdio.h"
#include "simple.h"
static long multiplier=14L;
long multiply(long no)
{
long retval;
retval = no * multiplier;
st.Format("Reslt is %d",retval);
MessageBox(NULL,st,"I",MB_OK);
return retval;
}
///////////////////////////////////////////////////////////////////////
n i m using this variable in other application first defining above the class header file like this
extern long multiplier;
n then in one of class function i m using this variable.
Cyber Friend
|
|
|
|
|
Whats the possibility to set some text to the memory and read the same text after a while but in the same process. If it is possible how can i accoplish this please explain me in detial.
I have tried with memset() and etc., but i couldnt see the desired output.
|
|
|
|
|
sivaprakashshanmugam wrote: Whats the possibility to set some text to the memory and read the same text after a while but in the same process. If it is possible how can i accoplish this please explain me in detial.
if i am not wrong , are you trying to keep the persistantancy of the data
if then try to use the static for persistancy.
Knock out 't' from can't,
You can if you think you can
|
|
|
|
|
Actually i am reading some text from file so it will be a stream of Bytes, i need to send bytes to MFC Activex control and i need to read it. I have tried in many ways but i couldnt so i am thought going this method. Do you have solution for this.
|
|
|
|
|
sivaprakashshanmugam wrote: Actually i am reading some text from file so it will be a stream of Bytes, i need to send bytes to MFC Activex control and i need to read it. I have tried in many ways but i couldnt so i am thought going this method. Do you have solution for this.
See,
You can read the file in text format you will get char string...
Convert that string into BSTR using ConvertStringToBSTR() function and
simply pass this bstr string to ActiveX control.
if you wanna a reflection on the BSTR then pass the pointer of it.
Another way is create the property of an Activex and set the string data to it read from file.
hope this helps you.
Knock out 't' from can't,
You can if you think you can
-- modified at 7:16 Friday 19th May, 2006
|
|
|
|
|
BYTE* p = NULL;<br />
<br />
BYTE* ReadFileIntoBuffer(...)<br />
{<br />
if(!p) { p = new BYTE[file_size]; }<br />
}<br />
<br />
bool PassToActiveXCtrl(...)<br />
{<br />
return ctrl.Input(p, file_size);<br />
}
Maxwell Chen
|
|
|
|