|
I've written DLL and it exports some functions.
But when I link to it given its .lib and .h files from another console project, it links to dll using ordinals but not names.
I dumped the .exe and found that it imports DllName.01, DllName.02 functions from that dll rather than original functions names.
The dumped dll has its exports as original function names
How to overcome it?
Чесноков
|
|
|
|
|
in the def file I guess you might have put ordinal number after the function name. Remove it.
See here[^] for informations.
|
|
|
|
|
Yes, I do put them in .def
Чесноков
|
|
|
|
|
Have you tried this without a .def file ? I have written dozens and dozens of DLLs for use in C and C++ code and never once used a .def file. You just have to make it clear whether the DLL exports C or C++ functions and classes in the header file.
|
|
|
|
|
But in that case the exported functions names become added with some ?@# symbols. They are not exactly the names as in the source code
Чесноков
|
|
|
|
|
Hi All,
I want to move mail to another folder.
I am getting exception in code:
_MailItemPtr mailPtr;
..
..
..
MAPIFolderPtr temp=g_pNsp->GetFolderFromID(_bstr_t(Selected_Action_Folder.szEntryID));
mailPtr->Move(temp);
|
|
|
|
|
did you debug to check if values are initialized properly and why is it crashing? If not, this may be the right time to do this activity.
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|
|
MPTP wrote: mailPtr->Move(temp);//here
What are the vakues of mailPtr and temp ?
"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
|
|
|
|
|
Please I need help on this, I'm new in C++.
Here are the details:
1. I have a base class and 3 derived classes:
Base class
class CRepositoryData
{
...
};
Derived classes
class CUser_data : public CRepositoryData
{
...
};
class CLock_data : public CRepositoryData
{
...
};
class CReferences_data : public CRepositoryData
{
...
};
2. My declaration for my classes in my function uses CList <>
main()
{
CList <CLock_data,CLock_data&> listLockDataTemp_L;
CList <CReferences_data,CReferences_data&> listLocationDataTemp_L;
CList <CUser_data,CUser_data&> listUserDataTemp_L;
if(Lock)
{
CreateBatchToSend(
dynamic_cast<CList<CRepositoryData,CRepositoryData&>*>(&listLockDataTemp_L));
}else if(CReferences)
{
CreateBatchToSend(
dynamic_cast<CList<CRepositoryData,CRepositoryData&>*>&listLocationDataDataTemp_L));
}else
CreateBatchToSend(
dynamic_cast<CList<CRepositoryData,CRepositoryData&>*>(&listUserDataTemp_L));
}
}
3. Is this code possible for my CreateBatchToSend()?
BOOL CreateBatchToSend(CList <CRepositoryData,CRepositoryData&> *pListRepData_P)
{
...
CList <CLock_data,CLock_data&> listLockDataTemp_L;
listLockDataTemp = dynamic_cast<CList<CLock_data,CLock_data&>*>pListRepData_P;
...
}
4. I am trying to create a function that can take those 3 derived classes in a list by using the base class as the argument and then use dynamic cast to revert back to their respective class.
Do I need to use other containers to implement this?
Any suggestions would be very helpful. Thanks a lot...
|
|
|
|
|
I am not sure I understood your question but what you are trying to do is not really correct. You can't cast to CList<CLock_data,CLock_data&>* from a CList <CRepositoryData,CRepositoryData&> * . These are two different types (even if the class used for template arguments are parent/child).
A better approache would be to use polymorphism: instead of manipulating a list of CRepositoryData objects, simply manipulate a list of pointers to CRepositoryData objects. This way, the pointer can point to a CRepositoryData object or to a child object.
This has also another advantage: all the lists can be manipulated the same way (and you could maybe even reduce them to one single list).
|
|
|
|
|
A ok. You're right. I need the pointer to CRepositoryData object.
My main problem is i have this 3 different functions that will call one function(Create_Batch_to_Send()) with CRepositoryData as the argument:
Function1 - calls Create_Batch_to_Send(CList<CUserdata,CUserdata&>*listUserData)
Function2 - calls Create_Batch_to_Send(CList<CLockdata,CLockdata&>*listLockData)
Function3 - calls Create_Batch_to_Send(CList<CReferencedata,CReferencedata&>*listReferenceData)
I want Create_Batch_to_Send() function to handle those 3 list. That's where my problem occurs. I dont know what argument i should use.
Sir please can you give me an example on how to make this pointer to CRepositoryData as an argument to
Create_Batch_to_Send(). Thank you very much...
|
|
|
|
|
void Create_Batch_to_Send(const CList<CRepositoryData*> & listUserData)
(it is also better to pass the list by reference, so that you don't make a copy of it).
But of course, all your lists should manipulate pointers and not objects. Thus, you will need to create your objects dynamically (using new) and not forget to delete them once you don't need them anymore.
In your function, it really depends what you have to do with the objects but in most of the cases, you probably won't need to cast anything.
|
|
|
|
|
You could make Create_Batch_To_Send a template function:
template<class ListElementType>
BOOL Create_Batch(CList <ListElementType,ListElementType&> *pListRepData_P)
{
}
This does have the obvious disadvantage that you'll have multiple copies of the function.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Our coding rules does not allow me to make the function a template but thanks anyway.
I cant seem to make it work on making my list and passing it to the batch function.
I call void Create_Batch_To_Send(const CList<CRepositoryData*> &listRepData)) considering the earlier reply.
myfunc()
{
CList<CUser_data, CUser_data&>* UserParentlist;
UserParentlist = new CList<CUser_data, CUser_data&>;
Create_Batch_To_Send(UserParentlist);
}
It does not work. Can you provide me with the exact syntax. Many thanks to all.
I think passing a CList derived class to a function that has an argument of the CList base class
is not possible. since inside my create_batch_to_send() I must be able to differentiate those 3 derived class. The first thing I did was like
create_batch_to_send(IN DATALIST dataType_P,IN POSITION &startPosition,
IN int number_of_Record_To_Copy,
OUT CList <CUser_data,CUser_data&> *plistUserdata_P,
OUT CList <CLock_data,CLock_data&> *plistLockData_P,
OUT CList <CReferences_data,CReferences_data&> *plistLocationData_P)
The enhancement that i want to make was to use the base class of these 3 classes as one argument only.
|
|
|
|
|
blontek wrote: Our coding rules does not allow me to make the function a template
Any sensible reason for that coding rule, or the usual anti-template FUD?
blontek wrote: I think passing a CList derived class to a function that has an argument of the CList base class
CList is NOT a base class. It's a template class. The instantiated list classes for your different data types have no common base class - nothing in common whatsoever, except that they've been created from the same template.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Hello,
I have following queries regarding CWebbrowser Control:
1. How does CWebBrowser control get its proxy setting?
2. How to make it get the proxy setting of default web browser - IE, Firefox or Chrome?
Thank you,
Best wishes...
|
|
|
|
|
CWebbrowser Control is used IE proxy setting.
|
|
|
|
|
If i uninstall IE it still is taking somesetting and running.
|
|
|
|
|
You can change the proxy with InternetSetOption method from the wininet.dll
|
|
|
|
|
How to make WebBrowser to take setting from default webbrowser. For example it should take from Firefox if it is default browser.
Thank you..
|
|
|
|
|
Member 3834630 wrote: For example it should take from Firefox if it is default browser
Why? The web browser control is always Internet Explorer under the hood, even if you've uninstalled IE. It doesn't magically use your default browser.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thank you. Yes, it doesnt magically get setting from default browser.
My question is, how to make Webbrowser to get setting from Firefox, if it is make default browser? Is this possible or not?
Thanks..
|
|
|
|
|
Member 3834630 wrote: how to make Webbrowser to get setting from Firefox
By making sure that the Internet Explorer proxy settings are the same as the Firefox settings...yourself.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
I have two processes creating an instance of CWebBrowser, is it possible to have different proxy settings for these two processes?
|
|
|
|
|
Hi All
I am useing CDatabase and OBDC to write data in Excel.i hava a problem in some specific condition like
"Create table test(Value Varchar(20),Type varchar(30)); .
That time i am getting exception message
Syntax error in filed defintion.
Can anyone help me to remove that problem.
|
|
|
|