Yes many ways, but you will need more information before you can start. Firstly you need to understand the format of the data in the "hex" file. Then you need to understand the instruction set (and format) of the plc language. Once you understand both those things you can start to design your converter.
Get any HEX editor, like HxD[^], and install it. Now go grab the Notepad.exe file from C:\Windows and open it in the hex editor.
Now you're looking at a whole of bunch of bytes that make up the content of the file, and you need documentation to tell you what every one of those bytes means. You're going to start here[^] to figure that out.
Oh, and when you get to actual executable code, you're going to have to understand the Intel instruction set, all the addressing modes, and the operands each instruction requires. All of that is in the bytes that make up the executable code. Notice, you're not going to get back C/C++ code. You're getting back assembly code.
Once you're brain melts from trying to understand all that, now you have to do that same thing for the .hex file you're looking at for your PLC's. Oh, and you'll need all the relevant documentation similar to this example of disassembling Notepad.
It is a single parameter constructor of the MainWindow class. The constructor accepts a single parameter which is a pointer to a QWidget object. The constructor sets its QMainWindow property to the input parameter - in this case the pointer named parent. It then sets its ui property by calling the Ui::MainWindow constructor, to create a new object of that class. To find out what the latter returns you need to look at the Ui class documentation.
But maybe you don't want to actually implement a terminal application? In which case, either I've misunderstood your query, or you need to reframe your question to better reflect what it is you are trying to do.
You have declared Sp1 to be an array of pointers, each of which points to a strTst structure. So to get one of the pointers you just need normal array addressing, e.g. Sp1 returns the second element of the array. So all you need is:
strTst *pt = Sp1; // pt now equals &spst2
intvalue = pt->s2; // get the value of spst2.s2
strTst *pt = Sp1;
pt->s1; // is spst1.s1
pt->s2; // is spst1.s2
pt->s3; // is spst1.s3
pt = Sp1;
pt->s1; // is spst2.s1
pt->s2; // is spst2.s2
pt->s3; // is spst2.s3// alternative
strTst **ppt = Sp1;
ppt->s1; // is spst1.s1
ppt->s2; // is spst1.s2
ppt->s3; // is spst1.s3
ppt->s1; // is spst2.s1
ppt->s2; // is spst2.s2
ppt->s3; // is spst2.s3
My working environment is: Windows 10, Visual Studio Community 2017 (and 2008 for older projects), programming takes place only in C/C++.
I need my program to be able to send emails with a PDF file attachment. The easiest way to send emails is to use ShellExecute with the parameter "mailto:firstname.lastname@example.org ... etc". But this method does not allow you to transfer attachments.
However, when I trying to send an email on another computer, it leads to an error in the MAPISendMail function MAPI_E_NOT_SUPPORTED (code 26). In this case, the MAPILogon(Ex) function is executed without errors. Both computers, mine and the other, are on the same network and use the same mail server and Outlook as the client for users. On the other computer send/receive of the emails works perfectly. I searched the Internet for a long time for an explanation of this error, but found nothing. A search on the site CodeProject also did not give anything.
Please explain me what this error means and how to fix it. Thank you very much!
The issue is that some parameter that is in that SendMail call is incorrect according to the client or server that is handling the request. But there is no way anyone here can tell which it is. You need to capture more information somehow.
Last Visit: 31-Dec-99 18:00 Last Update: 29-Sep-23 7:52