|
CPallini wrote: retcode = SQLInstallerError(1, &dwError, szError, SQL_MAX_MESSAGE_LENGTH-1, &cbError);
Hi sir,
I am getting this error:
Error 47 error C2664: 'SQLInstallerErrorW' : cannot convert parameter 3 from 'CHAR [512]' to 'LPWSTR'
Thanks
Raj
|
|
|
|
|
The use:
<big>TCHAR</big> szError[SQL_MAX_MESSAGE_LENGTH];
DWORD dwError;
WORD cbError;
RETCODE retcode;
retcode = SQLInstallerError(1, &dwError, szError, SQL_MAX_MESSAGE_LENGTH-1, &cbError);
<small>If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.<br>
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
<br></small><small><a href="http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=1778670">[My articles]</a></small>
|
|
|
|
|
Hi sir,
Thank you.Its building without error.
I am getting the retcode as zero(i.e SQL_SUCCESS).
But i am not finding the DSN Created when i am checking through Control Panel->ODBC
Thanks
Raj
|
|
|
|
|
How can I store an position of point ( point of end/begin of an line ) which is within an rect ?
void CSelectTool::OnLButtonDown(CNetMapView* pView, UINT nFlags, const CPoint& point)
{
CRect rect = m_Tracker.m_rect;
...
CPoint ptLine;
if(rect.PtInRect(rectLine.TopLeft()))ptLine = rectLine.TopLeft();
if(rect.PtInRect(rectLine.BottomRight()))ptLine = rectLine.BottomRight();
...
}
now I need ptLine value in follow event :
void CSelectTool::OnMouseMove(CNetMapView* pView, UINT nFlags, const CPoint& point)
{
CRect rect = m_Tracker.m_rect;
}
|
|
|
|
|
If I got you then you have to move the line of the same amount of the rectangle. i.e.
- Store the original position of the rectangle.
- On mouse move, subtract to current rectangle position the stored one, to obtain the offset.
- add the offset to the line.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Can you tell me how to insert / acces an struct elements from another class then declare it ?
...
...
typedef struct tagLine{
CDrawObj* pObj;
UINT nHandle;
CPoint point;
}Line;
...
...
CList<<Line,Line>> m_line;
...
void CSelectTool::OnLButtonDown(CMyView* pView, UINT nFlags, const CPoint& point)
{
pView->m_line.AddTail(pView->Line(pObj,1,point));
}
void CSelectTool::OnMouseMove(CMyView* pView, UINT nFlags, const CPoint& point)
{
}
Can you help me please ? Thank you !!!
modified on Wednesday, September 1, 2010 2:51 AM
|
|
|
|
|
Try something like following :
...
typedef struct tagLine {
int m_i1, m_i2;
Line(int i1, i2) : m_i1(i1), m_i2(i2) {};
} Line;
...
void CMyView::AddNewLine(int i1, int i2)
{
m_Line.AddTail(new Line(i1, i2));
}
virtual void BeHappy() = 0;
|
|
|
|
|
Ok , and when I want to acces an element of m_Line ?
|
|
|
|
|
MSDN has a code sample [^] about accessing elements of a CList .
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
mesajflaviu wrote: pView->m_line.AddTail(pView->Line(pObj,1,point)); // this is error
If your structure is defined globally (not inside your class), then you can simply do something like this (given that the structure has the appropriate constructor and your m_line variable is public):
pView->m_line.AddTail(Line(pObj,1,point));
However, it is always better to make your variables private and provide a AddLine to your CMyView instead.
mesajflaviu wrote: // I don't know how to access element of pView->m_line;
The same way you wrote it. But once again, providing a getter is much more clean.
If you want to access a specific line in your list, then you have to use the methods from the list to retrieve the line you are looking for.
|
|
|
|
|
Here is my trial :
typedef struct tagLine{
CDrawObj* pObj;
UINT nHandle;
CPoint point;
}Line;
...
...
CList<Line,Line> m_line;
void CMyView::AddLineStruct(CDrawObj* pObj, UINT nHandle, CPoint point)
{
Line LineStruct;
LineStruct.pObj = pObj;
LineStruct.nHandle = nHandle;
LineStruct.point = point;
m_line.AddTail(LineStruct);
}
void CSelectTool::OnLButtonDown(CNetMapView* pView, UINT nFlags, const CPoint& point)
{
...
pView->AddLineStruct(pObjLine,nHandle,point);
...
}
void CSelectTool::OnMouseMove(CNetMapView* pView, UINT nFlags, const CPoint& point)
{
POSITION pos = pView->m_line.GetHeadPosition();
while(pos != NULL)
{
pView->Line data = pView->m_line.GetNext(pos);
}
}
still , I don't know how to acces elemts of the structure ....
|
|
|
|
|
Perhaps will go if I declare Line strucure as global , but I didn;t want to do that ... is not elegant
|
|
|
|
|
Why not ? If your structure has to be manipulated externally from your CMyView class, then it makes sense to make it a class which is not defined in your CMyView class (the class, not instances of the class of course).
And I would probably make it a class instead of a structure because you could add some useful methods to it (like check if the line is close enough to a given point, calculate the lenght of the line, ...). Of course, you can still do that with a structure but for most people using a structure in C++ means that it is an object that only contains data (and no method). This is of course not a strict rule.
|
|
|
|
|
The AddLineStruct method is correct and is what you have to do in order to hide the implementation details from classes which are using CMyView (encapsulation).
Now you should do something similar as that for retrieving a line. I don't know based on which information you would like to retrieve a specific line but I guess this is based on the mouse location (the point variable) ?
So, you could create a method GetLine(const CPoint* point) which is retrieving a line (or an array of line) which are close to the point. This way, you also hide the internals about how your lines are managed by the CMyView class.
Just to clarify your doubts: you seem to be very confused about how to declare your variable (because in all cases it was wrong). So, if your structure is globally defined, you just have to do this:
Line newLine = ....; and if your structure is defined inside your CMyView class, then you should simply do this:
CMyView newLine = ....;
It doesn't make any sense to have to use an instance of CMyView in order to instanciate a variable (pView->Line ).
|
|
|
|
|
mesajflaviu wrote: pView->Line data = pView->m_line.GetNext(pos); // here is an error :
What's wrong with
Line & line = pView->m_line.GetNext(pos);
?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I solved in this way :
CMyView::Line structLine = pView->m_line.GetNext(pos);
I want to thank you all ! You are very kind ! I teach something here !!!
|
|
|
|
|
You are welcome.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I have a VS C++ server app that listens for client tcp connections, maintains them in a table, and when the server app receives a message from an app it is a proxy for the server app sends the message to each tcp connection. There will be no more than five connections and the message rate is less than one per second.
Now I need to be able to also read any messages coming in from the clients over the same connection. So on one thread, the main one, I am receiving and forwarding msgs from the app I am proxy for to the clients; on another thread I am listening for any new connections; and now I would like to listen for client input from any of the connected clients on a 3rd thread using select(). I maintain a list of all my active connections.
Can anyone provide and example using select() that sketches out how to do this.
Thanks
|
|
|
|
|
Hi Alan! Here a couple of thoughts...
a) where's the difference between "the app" and the "server app", are these different processes?
b) you mention incoming sockets are maintained in a "table" later a "list", what kind of data structure is this?
c) what do you plan to do with the data from incoming clients, forward it to someone and how (callbacks, IPC, etc)?
d) do you have to use select(), well, you probably don't want to mix multi-threading and non-blocking sockets?
e) why do you start every new messages with "re:"?
Questions over questions
/Moak
|
|
|
|
|
Hi all
I have a big problem, when Windows Xp, Vista or Win7 enter in sleep/stand by mode, my software crash in restart.
I found where is the problem, the problem is in ribbon bar.
I have a MDI application based in ribbon Office 2007, but my mainframe run in another thread where is the ribbonbar and initialization. I have a derived class of CWinthread where is my CMainframe, this is necessary because of software type.
In my tests I found:
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
This I set in OnCreate() function of my Mainframe, in tests I can see that problem is only when I choose CMFCVisualManagerOffice2007, there are no problem for the others, Office 2003, XP, VS2005.
Im using in development environment WINXP, VS2008 SP1.
Anybody can help me? Do you have seen this before?
Thank you
|
|
|
|
|
You could try to empty the WM_POWERBROADCAST reaction of your frame (1, rudely)
or to debug the CMFCVisualManagerOffice2007::OnUpdateSystemColors() after the logon...
...to find the responsible for the crash line
and then - to derive your own class from Off2007VManager
with some overwritten virtualities (2)
virtual void BeHappy() = 0;
|
|
|
|
|
So, now the problem is how to use my derived class in MainFrame.
I can't use :
CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCMyVisualManagerOffice2007));
My application still crash.
|
|
|
|
|
// I can't use
Why ?
virtual void BeHappy() = 0;
|
|
|
|
|
Here is my derived class:
class CMFCMyVisualManagerOffice2007 : public CMFCVisualManagerOffice2007
{
DECLARE_DYNCREATE(CMFCMyVisualManagerOffice2007)
public:
CMFCMyVisualManagerOffice2007();
virtual ~CMFCMyVisualManagerOffice2007();
virtual void OnUpdateSystemColors()
{
m_bAutoFreeRes = bAutoFree;
}
};
IMPLEMENT_DYNAMIC(CMFCMyVisualManagerOffice2007, CMFCVisualManagerOffice2007)
So, in OnCreate of CMainframe:
CMFCMyVisualManagerOffice2007::SetStyle (CMFCMyVisualManagerOffice2007::Office2007_LunaBlue);
CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCMyVisualManagerOffice2007));// this line crash application
|
|
|
|
|
Does it crash at the initial starting or after the standby mode ?
Try to comment your implementation for virtual void OnUpdateSystemColors() firstly,
then, when it will not crash, try to modify it slowly, for example :
void COurVisualManagerOffice2007::OnUpdateSystemColors()
{
CYourApp* pcApp = (CYourApp*) AfxGetApp();
ASSERT(pcApp);
if (pcApp) {
switch (pcApp->m_nAppLook) {
case ID_VIEW_APPLOOK_OFF_2007_BLUE:
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
break;
case ID_VIEW_APPLOOK_OFF_2007_BLACK:
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_ObsidianBlack);
break;
case ID_VIEW_APPLOOK_OFF_2007_SILVER:
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Silver);
break;
case ID_VIEW_APPLOOK_OFF_2007_AQUA:
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Aqua);
break;
}
}
CMFCVisualManagerOffice2007::OnUpdateSystemColors();
}
virtual void BeHappy() = 0;
|
|
|
|