For those new to message boards please try to follow a few simple rules when posting your question.
Choose the correct forum for your message. Posting a VB.NET question in the C++ forum will end in tears.
Be specific! Don't ask "can someone send me the code to create an application that does 'X'. Pinpoint exactly what it is you need help with.
Keep the subject line brief, but descriptive. eg "File Serialization problem"
Keep the question as brief as possible. If you have to include code, include the smallest snippet of code you can.
Be careful when including code that you haven't made a typo. Typing mistakes can become the focal point instead of the actual question you asked.
Do not remove or empty a message if others have replied. Keep the thread intact and available for others to search and read. If your problem was answered then edit your message and add "[Solved]" to the subject line of the original post, and cast an approval vote to the one or several answers that really helped you.
If you are posting source code with your question, place it inside <pre></pre> tags. We advise you also check the "Encode HTML tags when pasting" checkbox before pasting anything inside the PRE block, and make sure "Ignore HTML tags in this message" check box is unchecked.
Be courteous and DON'T SHOUT. Everyone here helps because they enjoy helping others, not because it's their job.
Please do not post links to your question in one forum from another, unrelated forum (such as the lounge). It will be deleted.
Do not be abusive, offensive, inappropriate or harass anyone on the boards. Doing so will get you kicked off and banned. Play nice.
If you have a school or university assignment, assume that your teacher or lecturer is also reading these forums.
No advertising or soliciting.
We reserve the right to move your posts to a more appropriate forum or to delete anything deemed inappropriate or illegal.
I converted MFC application to 64 bit using VS 2013. My exe is working in Release build.But As I run in Debug Build,it pops up with Window error saying "The Application was unable to start correctly(0x0c000007b).Click OK to close the application."
After Google, I tried different methods As suggested [Copied mfc100.dll,mfc00u.dll,msvcp100.dll,msvcr100.dll,msvcr100_clr0400.dll] to System32 folder.
I installed vs2010,vs2013 redistributable package too bt no Luck.
Using Excel Automation in Visual Studio 2010 C++, how do I define a name? As a userof Excel, you can enter a name that then can be used in formulas to refer to a range of cells. The range changes as the user inserts columns or rows. My program has worked with various versions of Excel dating back to the early 2000’s. I have a bunch of classes derived from COleDispatchDriver: CXLApplication, CXLRange, CXLWorkbook, CXLWorkbooks, and CXLWorksheet that have many functions, but I have no documentation (anybody have any clues onwhereto find documentation?). Anyone know how to define a named range using functions of these classes (probably CXLRange)?
I have tried making the preprocessor directive in the funcdefs.h file lower case (didn't make any difference) and have checked the include path using -H and it seems to find the file but cannot get it to link.
I might not have given you enough information. The actual text of the linking error message is:
In function `process(int, char*, ControlData*, char*, char*)':
PROCESS.CPP: (.text+0x788): undefined reference to `readsig(MiscParams*, char*)'
PROCESS.CPP: (.text+0xaac): undefined reference to `sig_save(Signal*, char*)'
PROCESS.CPP: (.text+0xdd4): undefined reference to `display(Signal*, MiscParams*, int)'.............
......etc etc etc
so there are many undefined references to functions from within the function 'process' contained in PROCESS.CPP
however; all these functions are defined in funcdefs.h as follows:
externint readsig ( MiscParams *misc , char *namelist , int *nsigs ,
Signal ***signals , char *error ) ;
etc etc etc
as I understand it, the various individual *.cpp files are referring to functions that are defined within funcdefs.h shouldn't these definitions be included from this file by the pre processor instruction and therefore be defined references?
Or are you saying that it is the function 'process' in PROCESS.CPP that is calling other undefined references? The very first such call is 'readsig' which is defined in functions.h
Or are you saying that I should just call functions.h functions.cpp?
This is driving me nuts so thanks for your help!
Jochen - I think I'm beginning to get your drift! The fundefs.h file only contains function prototypes not definitions
You must include the library or object modules that contains the actual code of the missing functions. As Jochen already mentioned, these are linker errors, nothing to do with compiling or header files.
If your question is, why the copy constructor and assignment operator are declared private: This is to prevent the users of the class from copying objects of that type. At least the assignment operator is created atomatically by the compiler, if the designer of the class doesn't explicitely specify one. This default assignment operator simply copies all members. So without the operator you could write
M m1, m2;
m2 = m1;
and it would compile. With this class definition as it is, you will get a compile time error that the operator is not accessible.
The good thing about pessimism is, that you are always either right or pleasently surprised.
I am new to COM. I have a DLL which is written in C. I want to make that DLL a COM dll. SO that i can register it and my application can use it. I tried google a lot. But not finding any satisfactory answer.
Please answer if you have any idea about how to achieve the said.
For what reason? You first need to diagnose what is happening in your code to cause the error. When you enter the critical section what are you trying to synchronise with?
void CVersion::ReadValue(BYTE *Buffer, int n_Length, int n_Source)
m_svalue = tempBuffer;
You are setting m_svalue to point to tempBuffer, but as soon as you exit this function that buffer will get released so the pointer is no longer valid. Looking at this code again I cannot see what useful purpose it serves.
Then you need to manage the lifetime of the string. If you pass it from one thread to another then you must ensure it is not deleted from its source until the destination has taken a secure copy. In your sample code your destination thread is taking a copy, but only into a temporary location which immeditely gets disposed. Assuming that m_svalue is a string pointer then you just need to allocate a buffer of the required size to it, and copy the message string across. You can then delete it at some later point.
I assume this is a threading problem. The code can probably be called from different threads (that's why you use a Critical Section), but the control text can only be set from the GUI thread.
The easiest way to achieve this is using a timer. So in the ReadValue() fucntion you only put the data into m_svalue. And in the OnTimer() function (which runs in GUI thread) you call Data(). This would of cource mean that you need to store the most recently used CClassVersion object somewhere.
The good thing about pessimism is, that you are always either right or pleasently surprised.
No, my function is not a Unicode function. my file path is C:\Downloads\HornSound.wav.
I found if I added the following " MessageBox(NULL, loct, "Message1", NULL); " before "CloseHandle(hThread);".
Both MessageBoxes (both in the function and in the thread) can correctly display the file path.
But if I removed "MessageBox" in the function, then the MessageBox in the thread cannot correctly display the file path. What is the problem?
The fact that it works when you add a delay suggests that the file path buffer is getting destroyed before the thread process has constructed the message box. You should ensure the buffer is preserved until the thread has finished using it, by some form of synchronisation. Or better still don't use threads unless they are serving some necessary function.
You are using an automatic variable sent from VB call. That variable, and the string contente, will be destroyed after the function that create the thread returns. The thread instead will be running and looking for the string at the address that you passed in the thread creation, but that address holds only garbage by then...
To make it work create a local string in your code and define it 'static', copy the passed string there, then create the thread.
If you have to start more threads with different strings, I suggest to allocate dynamic memory for each string to make it local for that thread. The thread can release the memory when it doesn't need it anymore.
c in case a global time step is reqd. eg. time accurate problems
No, I mean what is the programming problem? Telling us what you want to do does not give enough information about where you are stuck or what you have tried. If you know the mathematics of the problem then converting that into C++ code should not be too difficult.
Once again you are expecting us to guess what is happening; we cannot see your screen or read your mind. Please edit your message, add <pre> tags around your code to make it readable, and explain exactly what the problem is and where it occurs.
I wanted to calculate outgoing flux on 2D circular grid. So first part of this code is for to get grid point after that i initializes variables on those grid points, now i want to calculate diagonal to get unit normal through it .
above code running upto global time step