Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Ép kiểu dữ liệu BYTE[] sang LPCSTR

  1. #1
    Ngày gia nhập
    04 2008
    Bài viết
    2

    Mặc định Ép kiểu dữ liệu BYTE[] sang LPCSTR

    Em mới tìm hiểu về C++ nên chưa hiểu rõ các kiểu dữ liệu có trong C++. Em mong các pro chỉ bảo em nhiều.
    Em có 1 mảng 1 chiều kiểu BYTE như sau:
    BYTE[7]={0x00, 0xA4, 0x00, 0x00, 0x02,0x01,0x01};
    làm thế nào để nối các phần tử của mảng trên vào trong 1 chuỗi?
    Thanks for all

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Trong C++ tui nghĩ không có cái kiểu khai báo BYTE đó đâu, chắc đó chỉ thuộc về C thôi, còn muốn lưu trữ địa chỉ của 1 mãng, dạng hexa như cậu muốn thì cậu có thể làm như sau :
    C++ Code:
    1. #include <iostream>
    2. #include <string>
    3. #include <sstream>
    4.  
    5. int main(){
    6.   int arry[3] = {1, 2, 3};
    7.   std::string address_string;
    8.   for(int x = 0; x < 3; ++x)
    9.   {
    10.     std::ostringstream oss;
    11.     oss << reinterpret_cast<void *>(&arry[x]);
    12.     address_string += oss.str();
    13.   }
    14.   std::cout << address_string << '\n';
    15. }

  3. #3
    Ngày gia nhập
    04 2008
    Bài viết
    2

    cám ơn bác rox_rook. Để em thử xem sao

  4. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Kiểu LPCSTR là kiểu dữ liệu của Windows API. Như R_R đã nói thì trong C và C++ không có kiểu byte đó, đó là một kiểu người dùng định nghĩa, đại khái có thể như sau:

    C++ Code:
    1. typedef unsigned char BYTE;


    Nếu muốn chuyển kiểu char[] (chuỗi) sang kiểu LPCSTR, có thể làm như sau:
    Visual C++ Code:
    1. char my_char[]="Welcome to ...";
    2. some_func((LPCSTR)&my_char[0]);

    Nếu muốn chuyển kiểu CString sang LPCSTR thì có thể làm như sau:
    Visual C++ Code:
    1.     CString str; // the given string
    2.     CStringA strA(str); // a helper string
    3.     LPCSTR ptr = strA;

    Thử xem nào, mà mới học sao nhảy kinh thế. Đúng là một "tân binh"
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

Các đề tài tương tự

  1. Chuyển đổi các kiểu dữ liệu cơ bản sang mảng Byte trong C#.
    Gửi bởi snake_programmer trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 29-11-2012, 10:22 PM
  2. Lập trình C chia số 2 byte cho số 1 byte và cho kết quả thương là số 2 byte và phần dư là số 1 byte
    Gửi bởi sakurai111 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 17-11-2012, 10:58 PM
  3. Chuyển đổi số kiểu byte sang mã ascii của số kiểu byte
    Gửi bởi microchip trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 28-09-2011, 02:29 PM
  4. Gặp rắc rối khi chuyển từ LPCSTR sang LPCWSTR
    Gửi bởi gianghoplus trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 13-09-2009, 12:33 AM
  5. Chuyển từ Kiểu wchar_t sang kiểu LPCSTR như thế nào?
    Gửi bởi Cpro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 24-06-2009, 09:57 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn