If you got compiler errors and warnings, inspect them or add them to your question so that we know them. They contain the line number where the error occured. Inspect that line and the previous one(s) (some errors are sourced on previous lines and detected later). Read the error message. If you do not understand them, do some web research first.
However, there is one big beginner's mistake in your code:
The size of the arrays and the access to the array elements. With C/C++, arrays are accessed by zero based indexes. So the allowed indexes for a size of three are 0, 1, and 2. But your code uses also the index 3. As a result, your code will never work as expected or even crash.
I am writing a C program to convert input value to hours minutes.
input : 126, output : 2 : 6, input : 45 , output : 0 : 45.
For values like 3663, its printing
61 : 3
1 : 1
instead of 61 : 3.
My logic is :
printf("%d : %d\n",t1,t);
What is wrong here?
I am not able to understand this,could you help me.I am using Qt creature
//This is in .hclass MainWindow : public QMainWindow
explicit MainWindow(QWidget *parent = 0);
void S7API CliCompletion(void *usrPtr, int opCode, int opResult);
//When I say right click and "add definition in mainwindow" I have got this in .cppvoid MainWindow::CliCompletion(void *usrPtr, int opCode, int opResult)
// Now, My problem what is S7API here,I have not encountered like this in C language.What does it do here.what is it.Where do I have to look in Dietel book.
The function that I indicate above is related the example that it is client .I did just copy past properly.I wrote about calling convention and it say me ,you have to use macro with in .h and .c (prototype and function).Now, Qt didnt add the macro with function .I suppose I have to add .Am I right
Use the existing header and source files from the examples and add them to your project. Then call the function using the name and include the header file in the source files where you call it.
Convert the examples by implementing all the code in Qt classes (source and header).
I would go for the first option. Than there is no need to implement a similar function as Qt class member. You might do so, but then the Qt function must not use the macro:
// MainWindow.hclass MainWindow : public QMainWindow
explicit MainWindow(QWidget *parent = 0);
// No calling convention here because this is a Qt based C++ class membervoid CliCompletion(void *usrPtr, int opCode, int opResult);
#include "MainWindow.h"// Other includesvoid MainWindow::CliCompletion(void *usrPtr, int opCode, int opResult)
// Call the global implementation from other source file or library
::CliCompletion(usrPtr, opCode, opResult);
So,You mean ,I must not use the macro because of the reason that you say.I added in my project .lib,.h,.c and Qt is handling this instead of me.I understand like this,I am new communication engineer this is why I dont know perfect C++.
By the way I create a new function Clicompletion is the function that I create,I will use it any where.
Maybe I got it wrong you.
You must not use the macro with Qt classes (and should not use it with C++ classes).
If you have another source file (or library) where the function is implemented, there is no need to implement it again as MainWindow class member.
It is even not necessary to use the macro when the function is part of a C++ source file in your project. It is only necessary when using a C library. Then the header file tells the compiler that the function in the library uses that calling convention and that it must create corresponding code when creating the assembly code for the function call.
C and C++ might use different calling conventions (depends also on the used compiler). Therefore, a compiler must know the calling convention when a C function is called from C++ code.
Such constructs are not necessary for C++. But they are required when calling C functions from C++ code depending on how the C code has been build. If the C code is part of your project and you set the project options to compile C code as C++ (that is: use the C++ compiler also for C code), there is no need for the macro. But if the C code has been compiled as C for Windows, it must be used.
As a result of these informations, as far as I understand,I can call the functions just with name that intellisense show me functions,so that no problem with snap7 and I can create functions as I always do.This would be strange with macro.