473,883 Members | 3,128 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

What are the Minimum requirements for all 17 planes of Unicode in C++?

SwissProgrammer
220 New Member
What are the Minimum requirements for all 17 planes of Unicode in C++?


In YOUR EXPERIENCE !
(Sometimes official descriptions have not been accurate. I want experienced answers.)

C++0 to C++20; Which version is the minimum that can work with ALL of the 17 planes without requiring a work-around or a third party dll?
I am not interested in Visual Studio or .net . I used these in the past and I am aware that they are powerful but I specifically do not want them now. Just C++.
In case you might not know what Unicode "planes" are, see https://en.wikipedia.org/wiki/Plane_%28Unicode%29


I am currently only using plane 0 and C++11. I want to be able to use all of the planes 0-16. I want to know the minimum requirements in C++.


Thank you.
Oct 27 '20
33 12413
SwissProgrammer
220 New Member
"Use the report button (the triangle icon at the top of each post) and detail the reason why you think the post should be deleted and a moderator will look into the matter for you."

I do not see any triangle icon at the top or bottom of my post.

If that should mean the "report abuse" button or icon below the message, then would that go as a record of the poster being reported as abusive?

I would like to be able to make a reply, then after posting the reply, if I find that it was wrong, to be able to (as the poster) delete or remove the reply. I tried to edit it down to zero text, but I get an error message.

OK, I will try that.

It says, "Note: This is ONLY to be used to report spam, advertising messages, and problematic (harassment, fighting, or rude) posts." I can not un-post?
Dec 1 '20 #31
SioSio
272 Contributor
"the triangle icon at the top of each post"
Certainly, I can't find it.
There are cases where I want to delete post, such as when I have posted wrong information. I also want to know how to delete post.
Dec 1 '20 #32
SwissProgrammer
220 New Member
I have fought with this .to_bytes for a week to convert it from working with the CLI to working with my GUI.


I think that I should replace in

Expand|Select|Wrap|Line Numbers
  1.                                     case IN_put_text_box:
  2.                                         {
  3.                                             const HWND in_box = GetDlgItem(hWnd, IN_put_text_box);
  4.                                             const int n = GetWindowTextLength( in_box  );
  5.                                             if( n > 0 )
  6.                                                 {
  7.                                                     wchar_t text[n+1]; // +1 for terminator
  8.                                                     GetWindowText( in_box, text, n+1 );
  9.                                                     string utf8 = utf8_encode(wstring(text));
  10.                                                     // Force calling of ASCII/UTF8 version
  11.                                                     SetDlgItemText(hWnd, OUT_put_text_box, utf8_byte_values(utf8).c_str());
  12.  
  13.                                                 }
  14.                                             else    //if( n = 0 )
  15.                                                 {
  16.                                                     wchar_t text[n+1]; // +1 for terminator
  17.                                                     GetWindowText( in_box, text, n+1 );
  18.                                                     string utf8 = utf8_encode(wstring(text));
  19.                                                     // Force calling of ASCII/UTF8 version
  20.                                                     SetDlgItemText(hWnd, OUT_put_text_box, utf8_byte_values(utf8).c_str());
  21.                                                 }
  22.                                             break;
  23.  
of where I was so far:

Expand|Select|Wrap|Line Numbers
  1.  
  2.     #define _UNICODE
  3.     #define UNICODE
  4.  
  5.     #include <windows.h>
  6.  
  7.     #include <iostream>
  8.     #include <sstream>      // for std::wstringstream
  9.     #include <iomanip>      // for std::setw
  10.     #include <string>
  11.  
  12.     //using namespace std;  // do not need all of this namespace for this small program.
  13.  
  14.     // Shortened version of namespace std;
  15.         using std::string;
  16.         using std::wstring;
  17.         using std::wstringstream;
  18.         using std::hex;
  19.         using std::setw;
  20.         using std::setfill;
  21.  
  22.     #define MAX_LOADSTRING 100
  23.  
  24.     HWND Handle_Main_Window = NULL;
  25.  
  26.     #include <windows.h>
  27.  
  28.     wchar_t g_szClassName[] = L"myWindowClass";
  29.  
  30.     const int PUSH_BUTTON_1     = 1;
  31.     const int IN_put_text_box   = 2;
  32.     const int SAVE_button       = 3;
  33.     const int OUT_put_text_box  = 4;
  34.  
  35.  
  36.     // Previous declarations
  37.         void create_controls( const HWND hwnd );
  38.         LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
  39.         string utf8_encode(const wstring &wstr);
  40.         wstring utf8_byte_values(const string &str);
  41.  
  42.  
  43.     // Convert a wide Unicode string to an UTF8 string
  44.     string utf8_encode(const wstring &wstr)
  45.         {
  46.             if (wstr.empty())
  47.                 {
  48.                     return string();
  49.                 }
  50.  
  51.             int size_needed = WideCharToMultiByte(CP_UTF8, 0, wstr.c_str(), (int)wstr.size(), nullptr, 0, nullptr, nullptr);
  52.  
  53.             char buffer[size_needed+1];
  54.             WideCharToMultiByte(CP_UTF8, 0, wstr.c_str(), (int)wstr.size(), buffer, size_needed+1, nullptr, nullptr);
  55.  
  56.             string strTo( buffer );
  57.             return strTo;
  58.         }
  59.  
  60.  
  61.  
  62.     wstring utf8_byte_values(const string &str)
  63.         {
  64.             if (str.empty())
  65.                 {
  66.                     return wstring();
  67.                 }
  68.  
  69.             bool first = true;
  70.             wstringstream out;
  71.  
  72.             for(auto iter = str.begin(); iter != str.end(); ++iter)
  73.                 {
  74.                     if (first)
  75.                         {
  76.                             first = false;
  77.                         }
  78.                     else
  79.                         {
  80.                             out << L" ";
  81.                         }
  82.  
  83.                     unsigned int value = ((unsigned)*iter) & 0xFF;
  84.                     out << L"0x" << hex << setw(2) << setfill(L'0') << value;
  85.                 }
  86.  
  87.             return out.str();
  88.         }
  89.  
  90.  
  91.  
  92.     int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  93.         LPSTR lpCmdLine, int nCmdShow)
  94.         {
  95.             WNDCLASSEX wc;
  96.             MSG Msg;
  97.  
  98.             wc.cbSize        = sizeof(WNDCLASSEX);
  99.             wc.style         = 0;
  100.             wc.lpfnWndProc   = WndProc;
  101.             wc.cbClsExtra    = 0;
  102.             wc.cbWndExtra    = 0;
  103.             wc.hInstance     = hInstance;
  104.             wc.hIcon         = LoadIcon(nullptr, IDI_APPLICATION);
  105.             wc.hCursor       = LoadCursor(nullptr, IDC_ARROW);
  106.             wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
  107.             wc.lpszMenuName  = nullptr;
  108.             wc.lpszClassName = g_szClassName;
  109.             wc.hIconSm       = LoadIcon(nullptr, IDI_APPLICATION);
  110.  
  111.             if(!RegisterClassEx(&wc))
  112.                 {
  113.                     MessageBox(nullptr, L"Window Registration Failed!", L"Error!", MB_ICONEXCLAMATION | MB_OK);
  114.                     return 0;
  115.                 }
  116.  
  117.             Handle_Main_Window = CreateWindowEx(
  118.                 WS_EX_CLIENTEDGE,
  119.                 g_szClassName,
  120.                 L"Title",
  121.                 WS_OVERLAPPEDWINDOW,
  122.                 CW_USEDEFAULT,
  123.                 CW_USEDEFAULT,
  124.                 630,
  125.                 470,
  126.                 nullptr,
  127.                 nullptr,
  128.                 hInstance,
  129.                 nullptr);
  130.  
  131.             if(Handle_Main_Window == NULL)
  132.                 {
  133.                     MessageBox(nullptr, L"Window Creation Failed!", L"Error!", MB_ICONEXCLAMATION | MB_OK);
  134.                     return 0;
  135.                 }
  136.  
  137.             ShowWindow(Handle_Main_Window, nCmdShow);
  138.             UpdateWindow(Handle_Main_Window);
  139.  
  140.             while(GetMessage(&Msg, nullptr, 0, 0) > 0)
  141.                 {
  142.                     TranslateMessage(&Msg);
  143.                     DispatchMessage(&Msg);
  144.                 }
  145.             return Msg.wParam;
  146.         }
  147.  
  148.  
  149.     LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
  150.         {
  151.             switch (msg)
  152.                 {
  153.  
  154.                     case WM_CREATE:
  155.                         {
  156.                             create_controls( hWnd );
  157.                             break;
  158.                         }
  159.  
  160.                     case WM_COMMAND:
  161.                         {
  162.                             switch(LOWORD(wParam))
  163.                                 {
  164.  
  165.                                     case PUSH_BUTTON_1:
  166.                                         {
  167.                                             MessageBox( hWnd, L"PUSH BUTTON 1 was clicked", L"message from PUSH BUTTON 1", MB_SETFOREGROUND );
  168.                                             break;
  169.                                         }
  170.  
  171.                                     case IN_put_text_box:
  172.                                         {
  173.                                             const HWND in_box = GetDlgItem(hWnd, IN_put_text_box);
  174.                                             const int n = GetWindowTextLength( in_box  );
  175.                                             if( n > 0 )
  176.                                                 {
  177.                                                     wchar_t text[n+1]; // +1 for terminator
  178.                                                     GetWindowText( in_box, text, n+1 );
  179.                                                     string utf8 = utf8_encode(wstring(text));
  180.                                                     // Force calling of ASCII/UTF8 version
  181.                                                     SetDlgItemText(hWnd, OUT_put_text_box, utf8_byte_values(utf8).c_str());
  182.  
  183.                                                 }
  184.                                             else    //if( n = 0 )
  185.                                                 {
  186.                                                     wchar_t text[n+1]; // +1 for terminator
  187.                                                     GetWindowText( in_box, text, n+1 );
  188.                                                     string utf8 = utf8_encode(wstring(text));
  189.                                                     // Force calling of ASCII/UTF8 version
  190.                                                     SetDlgItemText(hWnd, OUT_put_text_box, utf8_byte_values(utf8).c_str());
  191.                                                 }
  192.                                             break;
  193.                                         }
  194.  
  195.                                     case SAVE_button:  //BTN_SAVE:
  196.                                         {
  197.                                             const HWND in_box = GetDlgItem(hWnd, IN_put_text_box);
  198.                                             const int n = GetWindowTextLength( in_box  );
  199.                                             if( n > 0 )
  200.                                                 {
  201.                                                     wchar_t text[n+1]; // +1 for terminator
  202.                                                     GetWindowText( in_box, text, n+1 );
  203.                                                     string utf8 = utf8_encode(wstring(text));
  204.                                                     // Force calling of ASCII/UTF8 version
  205.                                                     SetDlgItemText(hWnd, OUT_put_text_box, utf8_byte_values(utf8).c_str());
  206.                                                 }
  207.                                             else    //if( n = 0 )
  208.                                                 {
  209.                                                     wchar_t text[n+1]; // +1 for terminator
  210.                                                     GetWindowText( in_box, text, n+1 );
  211.                                                     string utf8 = utf8_encode(wstring(text));
  212.                                                     // Force calling of ASCII/UTF8 version
  213.                                                     SetDlgItemText(hWnd, OUT_put_text_box, utf8_byte_values(utf8).c_str());
  214.                                                 }
  215.                                             break;
  216.                                         }
  217.  
  218.                                     default:
  219.                                         {
  220.                                         }
  221.                             }
  222.  
  223.                             break;
  224.                         }
  225.  
  226.                     case WM_CLOSE:
  227.                         {
  228.                             DestroyWindow(hWnd);
  229.                             break;
  230.                         }
  231.  
  232.                     case WM_DESTROY:
  233.                         {
  234.                             PostQuitMessage(0);
  235.                         }
  236.  
  237.                     default:
  238.                         {
  239.                             return DefWindowProc(hWnd, msg, wParam, lParam);
  240.                         }
  241.                 }
  242.  
  243.             return FALSE;
  244.         }
  245.  
  246.     void create_controls( const HWND hwnd )
  247.         {
  248.  
  249.             CreateWindowW
  250.                 (
  251.                     L"BUTTON",
  252.                     L"PUSH BUTTON 1",
  253.                     WS_VISIBLE | WS_CHILD | WS_BORDER,
  254.                     10,10,
  255.                     130,20,
  256.                     hwnd,
  257.                     (HMENU) PUSH_BUTTON_1,
  258.                     GetModuleHandle( nullptr ),
  259.                     nullptr
  260.                 );
  261.  
  262.             CreateWindowW
  263.                 (
  264.                     L"EDIT",
  265.                     L"办   办",
  266.                     WS_VISIBLE | WS_CHILD | WS_BORDER,
  267.                     10,50,
  268.                     200,25,
  269.                     hwnd,
  270.                     (HMENU) IN_put_text_box,
  271.                     GetModuleHandle( nullptr ),
  272.                     nullptr
  273.                 );
  274.  
  275.             CreateWindowW
  276.                 (
  277.                     L"BUTTON",
  278.                     L"SAVE BUTTON",
  279.                     WS_VISIBLE | WS_CHILD | WS_BORDER,
  280.                     10,80,
  281.                     110,20,
  282.                     hwnd,
  283.                     (HMENU) SAVE_button,
  284.                     GetModuleHandle( nullptr ),
  285.                     nullptr
  286.                 );
  287.  
  288.             CreateWindowW
  289.                 (
  290.                     L"EDIT",
  291.                     L"OUTPUT TEXT WINDOW",
  292.                     WS_VISIBLE | WS_CHILD | WS_BORDER,
  293.                     10,130,
  294.                     600,300,
  295.                     hwnd,
  296.                     (HMENU) OUT_put_text_box,
  297.                     GetModuleHandle( nullptr ),
  298.                     nullptr
  299.                 );
  300.         }
  301.  
  302.  
  303.  
  304.  

with this

Expand|Select|Wrap|Line Numbers
  1.                                     case IN_put_text_box:
  2.                                         {
  3.                                             const HWND in_box = GetDlgItem(hWnd, IN_put_text_box);
  4.                                             const int n = GetWindowTextLength( in_box  );
  5.                                             if( n > 0 )
  6.                                                 {
  7.                                                     wchar_t text[n+1]; // +1 for terminator
  8.                                                     GetWindowText( in_box, text, n+1 );
  9.                                                     string utf8 = utf8_encode(wstring(text.to_bytes));   // CHANGED HERE
  10.                                                     // Force calling of ASCII/UTF8 version
  11.                                                     SetDlgItemText(hWnd, OUT_put_text_box, (utf8).c_str());   // CHANGED HERE
  12.  
  13.                                                 }
  14.                                             else    //if( n = 0 )
  15.                                                 {
  16.                                                     wchar_t text[n+1]; // +1 for terminator
  17.                                                     GetWindowText( in_box, text, n+1 );
  18.                                                     string utf8 = utf8_encode(wstring(text));
  19.                                                     // Force calling of ASCII/UTF8 version
  20.                                                     SetDlgItemText(hWnd, OUT_put_text_box, utf8_byte_values(utf8).c_str());
  21.                                                 }
  22.                                             break;
  23.                                         }
  24.  
I have tried to vary it. It is not working.

What is the logic of how to make this work?

I have been studying .to_bytes and most of what I get is for CLI (which I worked through). I am having difficulty with understanding how to make it work in GUI.

I get that .to_bytes gets each entire character, one at a time. Then what? Then why for that what.

Thank you if you show me how to make it work with GUI, but please tell me why it works that way. Other online explanations are not helping me enough.

Thank you.
Dec 3 '20 #33
SwissProgrammer
220 New Member
SioSio,

I tried using .to-bytes, but I am not certain that it is cross-platform (Windows, Mac, Unix) usable. Is it?

Thank you.

You said,
"the number of continuous bytes can be known from the bit pattern of the first byte"

I might want to reference how I found more of the following and what I found later, and other people might want to read this years later to understand, so I will explain:

I tried the following with a Command Line Interface via Code::Blocks 17.12 on Windows XP Professional (service pack 2) 32-bit:
0xxx
110x
1110
1111
I tested 0xxx and 110x and 1110. I found them to work for me in Plane 0 Unicode.

In testing, by myself of more than 10 Unicode characters from Plane 1, I found that 1111 works.

I found this on a Microsoft page [X]:
All the following bytes start with the mark "10" and the xxx's denote the binary representation of the encoding within the given range.

Unicode Range
UTF-8 Encoded Bytes
0x0000-0x007F
0 xxxxxxx
0x0080-0x07FF
110 xxxxx 10xxxxxx
0x0800-0xFFFF
1110 xxxx 10xxxxxx 10xxxxxx
0x10000-0x1FFFFF
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
Similar here: [X], [X], [X], [X]

Since Plane 16 Unicode (currently the highest) goes up to 10FFFF, and the last code point of 11110xxx is the same 10FFFF therefore I think that you have helped me greatly with this.

Thank you SioSio.

Thank you everyone else that helped me to understand what Unicode is doing and what C and C++ are doing as it relates to Unicode.

Please remember that I am still a beginner at C++ and I am still struggling with understanding a lot, but I am not allowing that to stop me.

Here is where I am with this:

Expand|Select|Wrap|Line Numbers
  1.  
  2. #define _UNICODE
  3. #define UNICODE
  4.  
  5. #include <windows.h>
  6. #include <commctrl.h>
  7.  
  8. #include <iostream>
  9. #include <bitset>
  10. using namespace std;
  11.  
  12. string TextToBinaryString(string words) {
  13.     string tempString = "";
  14.     string splitIntoBytes = "Spliting [" + words + "] into Bytes\n";
  15.     string binaryString = "";
  16.     string stringByte;
  17.  
  18.     string combined_1;
  19.     string combined_3;
  20.     string combined_4;
  21.  
  22.     std::string Number1;
  23.     std::string Number2;
  24.     std::string Number3;
  25.     std::string Number4;
  26.  
  27.     int i=1;
  28.     string numToString = "numToString is Not Working";
  29.  
  30.     for (char& _char : words) {
  31.  
  32.         // From Plane 0 Unicode Check for 0xxx or 110x or 1110
  33.         // From plane 1 Unicode Check for 1111                  Reference: http://www.i18nguy.com/unicode-plane1-utf8.html
  34.  
  35.         numToString = to_string (i);;
  36.         stringByte = bitset<8>(_char).to_string();
  37.  
  38.         i = i +1;
  39.  
  40.         binaryString = binaryString + "\n\n" + numToString + " Testing       " +  stringByte + "\n";
  41.  
  42.         binaryString =binaryString + "     _char====" + _char + "\n";
  43.  
  44.         Number1 = stringByte[0];
  45.         Number2 = stringByte[1];
  46.         Number3 = stringByte[2];
  47.         Number4 = stringByte[3];
  48.  
  49.         // 0
  50.         combined_1 = Number1;
  51.  
  52.         // 110 , 111
  53.         combined_3 = Number1 + Number2 + Number3;
  54.  
  55.         // 1111 with verification of not being 1110
  56.         combined_4 = Number1 + Number2 + Number3 + Number4;
  57.  
  58.  
  59.         binaryString = binaryString + "     Number1=[" + Number1 + "]\n";
  60.  
  61.         binaryString = binaryString + "     Number2=[" + Number2 + "]\n";
  62.  
  63.         binaryString = binaryString + "     Number3=[" + Number3 + "]\n";
  64.  
  65.         binaryString = binaryString + "     Number4=[" + Number4 + "]\n\n";
  66.  
  67.  
  68.         binaryString = binaryString + "     combined_1=[" + combined_1 + "]\n";
  69.  
  70.         binaryString = binaryString + "     combined_3=[" + combined_3 + "]\n";
  71.  
  72.         binaryString = binaryString + "     combined_4=[" + combined_4 + "]\n\n";
  73.  
  74.  
  75.         if (combined_1 == "0")  // 0
  76.             {
  77.                 tempString = "\n      [" + _char ;
  78.                 tempString = tempString  + "]=<Combined_1 PLANE 0>" + stringByte;
  79.                 // I get the following error if I do not split up the previous two lines
  80.                 // error: invalid operands of types 'const char*' and 'const char [23]' to binary 'operator+'|
  81.                 // Please answer in separate question here https://bytes.com/topic/c/answers/974655-invalid-operands-const-char-binary-operator Thank you.
  82.  
  83.  
  84.                 binaryString = binaryString += tempString;
  85.                 splitIntoBytes = splitIntoBytes + "\n Unicode Plane 0 [" + _char + "]=" + stringByte;
  86.             }
  87.         else
  88.             {
  89.  
  90.                 if (combined_3 == "110")
  91.                     {                                tempString = "\n      [" + _char ;
  92.                         tempString = tempString  + "]=<Combined_3 PLANE 0>" + stringByte;
  93.  
  94.                         binaryString = binaryString += tempString;
  95.                         splitIntoBytes = splitIntoBytes + "\n Unicode Plane 0 [" + _char + "]=" + stringByte;
  96.                     }
  97.                 else
  98.                     if (combined_4 == "1110")   // Verifying that there is a zero "0" past the 111.
  99.                                                 // Therefore it is still in Plane 0.
  100.                         {
  101.                             tempString = "\n      [" + _char ;
  102.                             tempString = tempString  + "]=<Combined_4 PLANE 0>" + stringByte;
  103.  
  104.                             binaryString = binaryString += tempString;
  105.                             splitIntoBytes = splitIntoBytes + "\n Unicode Plane 0 [" + _char + "]=" + stringByte;
  106.                         }
  107.                     else if (combined_4 == "1111")  // Verifying that there is a one "1" past the 111.
  108.                                                     // Therefore it is now in Plane 1.
  109.                         {
  110.                             tempString = "\n      [" + _char ;
  111.                             tempString = tempString  + "]=<Combined_4 PLANE 0>" + stringByte;
  112.  
  113.                             binaryString = binaryString += tempString;
  114.                             splitIntoBytes = splitIntoBytes + "\n Unicode Plane 1 [" + _char + "]=" + stringByte;
  115.                         }
  116.                     else
  117.                         {
  118.                             tempString = "\n      [" + _char ;
  119.                             tempString = tempString  + "]=<EXTENDED>" + stringByte;
  120.  
  121.                             binaryString = binaryString += tempString;
  122.                             splitIntoBytes = splitIntoBytes + " " + _char + "=" + stringByte;
  123.                         }
  124.  
  125.             }
  126.         binaryString = binaryString + "\n";
  127.  
  128.     }
  129.  
  130.     // For Line by Line testing:
  131. //    binaryString = splitIntoBytes + "\n\n-Line by line testing is next:\n\n" + binaryString + "\n\n";
  132.  
  133.     // For quick results:
  134.     binaryString = splitIntoBytes + "\n\n";
  135.  
  136.     return binaryString;
  137. }
  138.  
  139. int main()
  140. {
  141. //    string testText = "123办456   办"; // From Plane 0 Unicode
  142.     string testText = "a𐑒𐑦𐑙𐑛𐑳𐑥b" ; // From Plane 1 Unicode
  143.  
  144.     // I went to http://www.i18nguy.com/unicode-example-plane1.html and copied some of their characters
  145.     // which are Plane 1 Unicode and then pasted them into the code here
  146.     // and got a bunch of boxes
  147.     // string testText = "a[][][][][][]b";
  148.     //
  149.     // And, when I compiled it sometimes I got warnings that the line did not do anything,
  150.     // but I ran it and IT WORKED !
  151.     //
  152.     // Maybe, even though my laptop might not have the correct fonts to show the higher plane in Unicode characters,
  153.     // maybe C++11 via CODE::BLOCKS 17.12 accepted it and compiled it and ran it correctly.
  154.     //
  155.     // Wow. Thank you bytes.com
  156.  
  157.  
  158.     cout << "Convert [" << testText << "] to Binary\n\n";
  159.     cout << TextToBinaryString(testText) << "\n";
  160.  
  161.     return 0;
  162. }
  163.  
  164.  
Dec 12 '20 #34

Sign in to post your reply or Sign up for a free account.

Similar topics

0
1719
by: Daylor | last post by:
hi . what are the minimum requirements to install xp and NET framework (and offcourse to run .Net applications ) ? (im not talking about development)
3
9133
by: Alex | last post by:
I have developed a VB application that uses Oracle 8i database for backend. The database server is on the local network. From my development machine, the application connects (via ODBC) to the database successfully. The problem is that I want to install this application on several Windows 2000 client machines that do not have Oracle client installed (hence missing all the ODBC connectivity support files/drivers). What is the minimum...
0
982
by: Didymus | last post by:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi everyone, What would be the minimum system requirements on the installation machine for my application? (Or can you point me in the right direction to find out...) I made my application with VB.NET Standard.
1
3425
by: CW Proefrock | last post by:
I've only found information that says IIS6 based Web Services require Windows Server 2003. I hope that's not the case. Can I install IIS 6.0 on Windows XP Pro and have a valid WebServices host? If so ... Does this configuration include the ASMX mapping and necessary "engine" underneath?
0
1013
by: Wrathchild | last post by:
I'm on a project to migrate a website to a web services based web site and an VB6 application installed on clients calling that web service site. I have faced a proble which is some clients are still using windows 95 and some of them are even using Windows 3.11. I'm sure I won't get soap client working on windows 3.11, but I searched a lot Microsoft site and cannot find some paper or link enlisting the minimum requirements to run a...
0
1138
by: =?Utf-8?B?cm9kY2hhcg==?= | last post by:
hey all, what would you say the minimum requirements would be to run an asp.net application safe and securely? what could i get by with but safely and securely? i'm thinking windows 2003 on a desktop machine, windows certificate server...i guess this is kinda in between a software and hardware question. thanks, rodchar
2
2984
by: =?Utf-8?B?Qm9iIFdhaXRl?= | last post by:
I have produced a small exe (1.6mb) which doesnt have any file access and doesnt have very heavy memory requirements. It was created in Visual Studio 2005. How would I go about calculating the minimum windows version and hardware configuration (processor speed, ram size, disk size) ?
3
15159
by: justinrob | last post by:
Can someone tell me the minimum requitements for Python as I can't find it anwhere on the site. I have 3 PC's which are only 256mb RAM, wanted to know if this was sufficenent. Thanks
0
9944
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9797
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
11154
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10762
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10863
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9586
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5807
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4622
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
3241
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.