|
manoharbalu wrote:
The problem is when I click on the view, it throws an assertion "Debug Assertion Failed at line: 252 in viewcore.CPP".
And what is the code "at line: 252 in viewcore.CPP" and some lines above it?
|
|
|
|
|
manoharbalu wrote: The problem is when I click on the view...I have added the below code for selection of tabs. But what does the code look like that responds to the view being clicked?
"One man's wage rise is another man's price increase." - Harold Wilson
"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
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Hi,
I have an MFC application for which I have integrated OPC function using Wintech OPC DLL.
This application is an OPC Client which connects to a OPC Server and gets values from it using OPC communication.
I call the OPC functions in my application.
I used WPF(dll created by C#) in this application for some graphics and turned on the project
setting "Common Language Runtime Support (/clr)"
When I run my application in VS2008 using F5, it runs without any issues it shows correct values.
But when I run the same application using Cntrl+F5 or directly run the EXE, it runs but it shows junk values.
Notes
Suppose i change project setting from "Common Language Runtime Support (/clr)" to "No Common Language Runtime support" it is not supported WPF dll.
Please help me to find the solution for this problem
|
|
|
|
|
So, you cannot use debugger to find an error, since the program runs correctly under debugger. You need to use another debugging technique, for example, tracing.
Add TRACE/OutputDebugString messages to different parts of the program. Print results of different function calls, values of a variables etc., whatever you need to check the program. Run the program without debugger with DebugView: https://docs.microsoft.com/en-us/sysinternals/downloads/debugview Use the TRACE output to find what is wrong.
By the way, during development process, always run your program without debugging. Use debugger only if you really want to debug. This allows to prevent such situations in the future.
|
|
|
|
|
Hi
Thanks for replay. I downloaded debugview application it is also not display issue.
Still i couldn't identify the issue. Please help me
|
|
|
|
|
Try to log: at first step log the main steps of the running application, then implement smaller logging steps and so on...
|
|
|
|
|
Hello !
I have 2 classes Books and Author. On of members of Books is of type Author.
On Class Books I want to have a Constructor that takes all the parametres for book and for author :
This is my code :
class author
{
private :
string name;
string email;
public :
string get_name(){return name;}
string get_email(){return email;}
void set_name(string name){this->name=name;}
void set_email(string email){this->email=email;}
author(string name,string email)
{ this->name=name;
this->email=email;
}
}
class book
{
private :
string title;
int year;
author auth;
public:
string get_title(){return title;}
int get_year(){return year;}
void set_title(string title){this->title=title;}
void set_year(float year){this->year=year;}
book(string title, int year):author(string name,string email)
{
this->title=title;
this->year=year;
???????
}
}
I don't know how can i change the constructor of book in order that it takes all the perameter for book and for the author?
Thank you !
|
|
|
|
|
To answer your question
class book {
...
book(string title, int year, string name, string email) : auth(name, email) {
...
}
};
Some things for you to think about:
1) If you have getters and setters for all your private members, how is this different than making the private members public?
2) Although names don't usually change change (Ferdinand Lewis Alcindor Jr might disagree), emails can and do. What happens if you have a large collection of books and want to change the email of an author? There might be a better way to structure your data.
|
|
|
|
|
@1) he doesn't have a getter and setter for book::author
@2) agreed. Either the class author should really be a class author_reference, and name and email are just a (n unsuitable) choice of a unique reference to this specific author which is represented within a separate class and my contain more (private) data like home address and preferred brand of peanut butter. Or the class author really represents an actual author, in which case (s)he should only be referenced, not defined as a data member. After all, the author shouldn't die just because a book is burned...
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
|
|
|
|
|
Besides an author having multiple books, a book can also have multiple authors (including commentators).
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Presumably this is homework.
At any rate a "copy constructor" sounds quite possibly what the homework really wants you to come up with. Although perhaps the assignment is to let you copy everything first and then next demonstrate what a copy constructor is.
|
|
|
|
|
The [[nodiscard]] attribute can be use either for function return and for struct.
Both will return the same warning; Is there a better use case for the attribute ?
Either tag the struct:
struct [[nodiscard]] Patate
{
int patate;
};
Patate f1()
{
return Patate();
};
void main()
{
f1(); }
or tag the function return.
struct Patate
{
int patate;
};
[[nodiscard]] Patate f1()
{
return Patate();
};
void main()
{
f1(); }
I'd rather be phishing!
|
|
|
|
|
Your function is returning by value, which your code is ignoring (discarding).
A Google search for "attribute nodiscard" provides the answer.
C++ attribute: nodiscard (since C++17) - cppreference.com[^]
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|
I know that, but the description is not clear about the differences if any between the nodiscard for the struct vs for the function.
I'd rather be phishing!
|
|
|
|
|
Well,
That attribute is weakly defined in section 10.6.7 of the standard. You can go read it yourself. The behavior is intentionally vague using words like 'encouraged' and 'discouraged'. Regardless of whether it's applied to a function or class there is no difference defined.
In fact if you carefully read the document no behavior has been defined. The only section without 'encouraged' and 'discouraged' is section 1 where the attribute token "[[nodiscard]]" itself is defined.
In other words in C++17 the only guarantee is that your compiler understand the [[nodiscard]] attribute. No behavior is defined.
Best Wishes,
-David Delaune
|
|
|
|
|
There is no difference you are discarding something (you didn't save it) that was marked as non discard.
The whole idea should have been euthanized, it is what you get when you get a committee to talk about non existent problems.
There are half a dozen real problems but they waste time on that junk.
Here is the best template to fix [nodiscard]
template < typename T >
void ignore(T&&) {}
Try it on your code
ignore(f1());
Now don't make me do it .... if I want to discard something I will
In vino veritas
modified 5-Apr-19 9:40am.
|
|
|
|
|
LOL
I think someone got tired of programmers who do not follow the good practice of checking returned values and decided to provide a standard way to warn them. The problem with that is those same programmers also tend to ignore warnings.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|
John R. Shaw wrote: ... same programmers also tend to ignore warnings.
But, but, if it compiles, I'd then not need to worry about the warnings, right?!
|
|
|
|
|
Hope can post this question on this forum.
I was under believe that triplet means three in format:
CPU-company-OS
So why is config.guess adding -gnu as fourth value?
I do not see any tangible benefits in reporting "gnu".
$ sudo bash config.guess
x86_64-pc-linux-gnu
Cheers
|
|
|
|
|
to a certain extent its the GNU foundation being picky. the systtem is "linux-gnu" i.e. a linux kernel with GNU infrastructure tools. AFAIK there's no other tools running on a linux system, but that doesn't mean there couldn't be.
why are you using sudo in this situation? it shouldn't be neccessary
|
|
|
|
|
Using sudo because it works.
Now I may have to modify the code to look for "linux-gnu", See no issues doing that.
|
|
|
|
|
Vaclav_ wrote: Using sudo because it works.
If it only works with sudo then you've seriously borked your system. If commands work without sudo, then please stop doing that ... eventually you're going to do something like
$ cd /bin
do some more things, time passes, you forget where you are ...
$ sudo rm * ##whoops ... there goes everything in /bin .. time to recover from backups or re-install, more likely
Don't tell me it will never happen to you ... it just hasn't happened to you yet. Something like that has happened to almost everyone that has had root privileges on unix or unix-line system system. That's partially why login as root is generally discouraged. But if you insist on prefixing almost everything with sudo, you might as well just enable root login on your system and go from there.
|
|
|
|
|
|
so that would be armXX-unknown-linux-uClibc, then? Interestingly FreeBSD (i386, 9.1 - old, i know) reports i586-unknown-freebsd9.1. No mention of the the c-library involved.
|
|
|
|
|
Well,
Rather than speculate about what it could be let's just take a direct look at the latest source code;
gcc/config.guess at master · gcc-mirror/gcc · GitHub
case "$UNAME_SYSTEM" in Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
#else
LIBC=gnu
#endif
EOF
eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
# If ldd exists, use it to detect musl libc.
if command -v ldd >/dev/null && \
ldd --version 2>&1 | grep -q ^musl
then
LIBC=musl
fi
;;
esac
So looks like the possible values are:
Best Wishes,
-David Delaune
|
|
|
|