Masuk dengan Microsoft
Masuk atau buat akun.
Halo,
Pilih akun lain.
Anda memiliki beberapa akun
Pilih akun yang ingin Anda gunakan untuk masuk.

Gejala

Pertimbangkan skenario berikut ini.

  • Anda membuat aplikasi yang memuat byte dari struktur atau kelas di Microsoft Visual Studio 2008 Paket Layanan 1 (SP1).

  • Anda mengaktifkan opsi optimasi /Ox atau opsi optimasi /O2 .

  • Anda mengkompilasi aplikasi dengan menggunakan konfigurasi peluncuran untuk x64 platform.

Dalam skenario ini, offset yang dibuat untuk mengakses anggota struktur atau anggota kelas tidak benar.

Masalah ini terjadi hanya ketika ukuran struktur dan offset atau ukuran kelas dan offset sama dengan salah satu pasang berikut ini:

  • (14,13)

  • (15,13)

  • (22,21)

  • (23,21)

  • (30,29)

  • (31,29)

Pemecahan masalah

Informasi Hotfix

Sekarang tersedia hotfix yang didukung dari Microsoft. Namun, ini ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Perbaikan terbaru ini dapat menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terlalu dipengaruhi oleh masalah ini, kami sarankan Anda menunggu paket layanan Visual Studio 2008 berikutnya yang berisi perbaikan terbaru ini.

Untuk segera menyelesaikan masalah ini, hubungi layanan dukungan pelanggan Microsoft untuk mendapatkan hotfix. Untuk daftar lengkap nomor telepon layanan dukungan pelanggan Microsoft dan informasi mengenai biaya dukungan, kunjungi situs Web Microsoft berikut ini:

http://support.microsoft.com/contactus/?ws=supportCatatan Dalam kasus tertentu, biaya yang biasanya diadakan untuk panggilan dukungan mungkin dibatalkan apabila profesional dukungan Microsoft menentukan bahwa pembaruan khusus akan memecahkan masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah yang tidak termasuk pada pembaruan tertentu yang dimaksud dukungan tambahan.

Prasyarat

Anda harus memiliki Visual Studio 2008 Paket Layanan 1 diinstal untuk menerapkan hotfix ini.

Persyaratan menghidupkan ulang

Anda tidak harus menghidupkan ulang komputer setelah menerapkan hotfix ini.

Informasi penggantian hotfix

Hotfix ini tidak menggantikan hotfix lainnya.

Informasi file

Versi bahasa Inggris dari hotfix ini memiliki atribut berkas (atau atribut berkas yang lebih baru) yang tercantum dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas tersebut dicantumkan dalam Waktu Universal Terkoordinasi (UTC). Ketika Anda melihat informasi berkas, akan diubah ke waktu lokal. Untuk menemukan perbedaan antara waktu UTC dan waktu lokal, gunakan tab Zona Waktu di item Tanggal dan Waktu di Panel Kontrol.

Nama file

Versi file

Ukuran file

Tanggal

Waktu

Platform

C2.dll

15.0.30729. 4082

2,283,320

19-Mar-2009

05:13

x86

C2.dll

15.0.30729.4082

2,36 1,656

19-Mar-2009

05:13

x86

C2.dll

15.0.30729.4082

3,01 7,528

19-Mar-2009

05:13

x64

Link.exe

9.0.30729.4082

1,0 54,520

19-Mar-2009

05:13

x64

Link.exe

9.0.30729.4082

799, 032

19-Mar-2009

05:13

x86

Pemecahan masalah

Untuk mengatasi masalah ini, tambahkan satu atau lebih anggota sembarang "tidak ditandatangani char" untuk memperbesar ukuran struktur atau kelas multi terkecil delapan byte. Sebagai contoh, memperluas 14 byte untuk 16 byte.

Status

Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

Informasi lebih lanjut

Untuk informasi selengkapnya tentang peristilahan pemutakhiran perangkat lunak, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

824684 Deskripsi tentang terminologi standar yang digunakan untuk menjelaskan pembaruan perangkat lunak Microsoft

Langkah-langkah untuk mereproduksi masalah

  1. Membuat aplikasi yang bernama Test.cpp dengan menggunakan kode berikut dalam Visual Studio 2008 SP1:

    typedef struct DskDecimal
    {
    unsigned char precision;
    unsigned char scaleFactor;
    unsigned short value[ 5];
    unsigned char maxPrecision;
    unsigned char maxScaleFactor;
    } DskDecimal;

    int main()
    {
    DskDecimal decimal;
    decimal.maxScaleFactor = 4;
    DskDecimal self = decimal;
    return self.maxScaleFactor;
    }
  2. Kompilasi aplikasi dengan menggunakan perintah berikut ini:

    Cl test.cpp /O2 /MD

Hasil yang diharapkan adalah 4. Namun, hasil yang sebenarnya adalah 0.

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.

Apakah informasi ini berguna?

Seberapa puaskah Anda dengan kualitas bahasanya?
Apa yang memengaruhi pengalaman Anda?
Dengan menekan kirim, umpan balik Anda akan digunakan untuk meningkatkan produk dan layanan Microsoft. Admin TI Anda akan dapat mengumpulkan data ini. Pernyataan Privasi.

Terima kasih atas umpan balik Anda!

×