|
Even tried below one, but no luck.
BEGIN_MESSAGE_MAP(CMyClass, CScrollView)
ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN, OnSpinContol)
END_MESSAGE_MAP()
void CMyClass::OnSpinContol(NMHDR *pNMHDR, LRESULT *pResult)
{
}
|
|
|
|
|
Sampath579 wrote: Even tried below one, but no luck.
BEGIN_MESSAGE_MAP(CMyClass, CScrollView)
ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN, OnSpinContol)
END_MESSAGE_MAP()
void CMyClass::OnSpinContol(NMHDR *pNMHDR, LRESULT *pResult)
{
}
1. Define "no luck".
2. Do you pass the correct control ID (IDC_SPIN)?
|
|
|
|
|
Hey Thanks Victor. Its working now.
|
|
|
|
|
It is very probably sourced by the creation of your spin control:
m_spin.Create(UDS_HORZ, CRect(0, 0, 50, 50), this, 1011);
That misses the common window style flags like WS_CHILD | WS_VISIBLE | WS_TABSTOP .
Just out of interest:
Why are you creating your controls manually instead of using resource templates?
With templates the default settings are initially set in the resource editor so that such errors did not occur.
|
|
|
|
|
Hey Thanks..
Finally its working. The very first thing is i am new to MFC and second is i am creating all dynamic windows and controls based on user input.
|
|
|
|
|
|
I AM TRYING TO READ ARABIC QR CODE I HAVE GOT STRING LIKE THIS:
"0E" & ChrW(2) & "!پù;ر-ً" & ChrW(5) & "üà1" & ChrW(18) & "ثV½›H$»سè" & vbBack & "“أK»V¢®؛" & ChrW(21) & "*" & ChrW(2) & " |" & ChrW(26) & "M§" & ChrW(18) & "uس/ءd'ق" & ChrW(15) & "•qw}َ" & ChrW(22) & "î" & ChrW(31) & "ِه" & ChrW(30) & ">›جWگ¢Kh" & vbCr
IF YOU PLEASE I WANT TO CONVERT IT TO REAL STRING
THANK YOU
|
|
|
|
|
That looks like Basic code, not C/C+.
|
|
|
|
|
YES IT IS VISUAL BASIC BUT IS THERE ANY WAY TO UNDERSTAND THAT CODE
|
|
|
|
|
Yes read up on Visual Basic or go to a Visual Basic forum and ask.
In vino veritas
|
|
|
|
|
Text in Arabic would either be written in Unicode, or using an Arabic "code page" (a throwback to the days when characters were 8 bits, and so your program had to "know" what language was encoded in codes 128..255). One way to encode Unicode in QR codes is using UTF-8. Have you tried running the raw QR data through a UTF-8 decoder?
Note that if the raw QR data does not start with a BOM (Byte-order mark), you will have to try both low-endian and high-endian versions.
Ad astra - both ways!
|
|
|
|
|
Private Sub doupdate()
RichTextBox1.Text = str
End Sub
Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Try
mystring = SerialPort1.ReadLine
Dim encExc As New UTF8Encoding
Dim encRepl As New UTF8Encoding
Dim s As String = mystring
Dim index As Integer = encExc.GetByteCount(s)
Dim bytes(Index + 3) As Byte
encExc.GetBytes(s, 0, s.Length, bytes, 0)
bytes(index) = &HFF
bytes(index + 1) = &HD8
bytes(index + 2) = &HFF
bytes(index + 3) = &H1
Dim enc As Encoding = encRepl
str = ""
Dim si As New System.Globalization.StringInfo(mystring)
Dim unicodeTestArray(si.LengthInTextElements) As String
For i As Integer = 0 To si.LengthInTextElements - 1
unicodeTestArray(i) = si.SubstringByTextElements(i, 1)
str = str & System.Text.Encoding.UTF8.GetString(bytes)
Next
SerialPort1.DiscardInBuffer()
Me.Invoke(New EventHandler(AddressOf doupdate))
Catch ex As Exception
MsgBox("NO BARCODE")
End Try
End Sub
BUT I GOT THE RESULT
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
0D ]Gب
¾–”q›73ھـY`ْ'؛‹’Dپآ=Ok kَ(h#¤ٌخyqْ3£ّ«X‘*£ط؛ع
°r¹ة>w
���
|
|
|
|
|
It's Visual basic you are on a C/C++ forum it all reads like Arabic to me including the code, go to a Visual Basic forum.
All I get is clearly text isn't in the right format or your code is wrong which I feel pretty confident you already worked out.
So how do expect me to fix it, I can't even understand the code.
In vino veritas
modified 21-Mar-18 22:43pm.
|
|
|
|
|
- Check the encoding of your QR data. Are there extra (non-Arabic) bytes, or anything else?
- The data that you are receiving from the serial port is 8-bit bytes. It must somehow be converted to Unicode characters, according to the encoding determined in stage (1).
And lastly:
- Move this question over to the Visual Basic forum. People there may be better able to help you with your code.
Ad astra - both ways!
|
|
|
|
|
Hi,
Am trying to connect WinTECH OPC Client to MaxDNA V6.0.7 server in local PC and LAN network also. These Connection was successfully established but it was showed "Tag Quality bad" and "Value Unspecified Error".
How to solve this issue please help me ASAP.
|
|
|
|
|
What does it have to do with C/C++/MFC programming?
Did you write some code that caused this error?
|
|
|
|
|
|
I'm attempting to port some old code from VS2005 C++ to VS2017. One problem that I don't know how to address is how to convert the old _beginthreadex to what would be the correct call in 2017.
VS2005 code is calling a member function that is in a class:
m_sendThread = (HANDLE)_beginthreadex(NULL, 0, sendData, this, 0, &this->m_sendThreadId);
I've casted it it to: m_sendThread = (HANDLE)_beginthreadex(NULL, 0, (unsigned(__stdcall *)(void *))sendData, this, 0, &this->m_sendThreadId);
Code compiles but will exit with code 1073741855.
The class is a class that handles winsock connections and sendData is called to start the thread once the socket has been established.
I am new to classes and even newer to threaded programs so it is hard for me to say how to fix this problem.
Any help would be much appreciated.
Thanks.
|
|
|
|
|
The _beginthreadex() version used by your code has not changed since VC 6.0 besides the return type:
VS6: _beginthread, _beginthreadex[^]:
unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr );
_beginthread, _beginthreadex | Microsoft Docs[^]:
uintptr_t _beginthreadex(
void *security,
unsigned stack_size,
unsigned ( __stdcall *start_address )( void * ),
void *arglist,
unsigned initflag,
unsigned *thrdaddr
);
If you need to cast the start_address parameter (your sendData function) to avoid compilation errors, you should change the function declaration instead. Never use casting for such (address of function) parameters but provide correct types.
An exit code of 1073741855 (0X4000001F) is not a standard error code. You might use the debugger to find out when and under which conditions your application exits with that code.
I guess that the problem is not related to _beginthreadex() but to the thread function itself or even any other parts of your application.
|
|
|
|
|
Thank you for your time and response. I didn't know this was responded too as my email has an issue.
|
|
|
|
|
You are calling a class member function you must shim it thru a static function
#include <process.h>
class foo
{
public:
void startTheThread()
{
sendHandle = _beginthreadex(0, 0, &foo::sendData, this, 0, &this->m_sendThreadId);
}
private:
void sendDataMemberCall()
{
}
static unsigned __stdcall sendData(void *p_this)
{
foo* p_foo = static_cast<foo*>(p_this);
p_foo->sendDataMemberCall(); return 0;
}
uintptr_t sendHandle;
unsigned m_sendThreadId;
};
As a quick explaination a non static class function has a hidden invisible pointer which you know as "this".
So if you look at the member function sendDataMemberCall it looks like this to you
void sendDataMemberCall()
At a code level it actually looks like this
void sendDataMemberCall (foo* this);
The compiler pushes down a hidden pointer to the actual instance of the class object
So if we had two instances foo1 and foo2 when you call sendDataMemberCall they actually do this
sendDataMemberCall (&foo1);
sendDataMemberCall (&foo2);
So the problem is the format we need for the thread function doesn't match the class function and we can't
make them match because of the hidden local instance push. However the thread function does allow us to pass
a parameter and we pass "this" as a parameter. So now what you can do is typecast this back to a pointer to
it's type and get the compiler to call the pointer member function and it will magically push our hidden pointer.
So all the shim is really doing is turning function + extra parameter into push paramater call class function.
In vino veritas
modified 20-Mar-18 20:50pm.
|
|
|
|
|
Thank you for the response. Just getting back to working on this and will look over and try to fix with your suggestions.
|
|
|
|
|
Thanks again for the detailed response.
I attempted to apply this calling convention into my program and really got twisted up with outer errors. So I'm trying now to do this again.
Still getting errors:
error C2664: '_beginthreadex' : cannot convert parameter 3 from 'unsigned int (__clrcall *)(void *)' to 'unsigned int (__stdcall *)(void *)'
Address of a function yields __clrcall calling convention
Jim
|
|
|
|
|
The compiler is trying to link to managed code ... see the 4 different definitions of beginthreadex
_beginthread, _beginthreadex[^]
You are probably compiling with the managed code probably because you have clr compilation turned on.
pull down menu .... debug -> program name properties -> general tab -> No Common Language Runtime Support
Turn it to "No Common Language Runtime Support"
If you dont understand managed vs native code
Difference between managed and unmanaged code[^]
Now the funny part if you do need managed code you will have to shim the shim ... yes an irony but the pointer that is being passed has to be converted. If you can't work it out drop me a line and I will do it for you.
In vino veritas
modified 18-Apr-18 3:53am.
|
|
|
|
|
Thank again Leon.
Seems like anything I change in the compiler just makes things 1000 times worse. I looks like there is going to be no easy way to get this to work and I may have to take a couple of classes to get up to speed.
Thanks for all your time and thorough answers.
Jim
|
|
|
|