30/09/2018, 18:20

Lỗi win trong lập trình c++ thư viện window

chào mọi người, e đang học cách viết về 1 phần trong win32api , có học trên mạng,1 số trang từ cơ bản,…nhưng có 1 vấn đề :
máy e cài win 32 bit, khi chạy 1 đoạn code của win 64 bit thì bị báo lỗi win ( cả codeblocks hay vissual đều lỗi) thì có cách chuyển hóa nào để đoạn code win64 bit kia thành win 32 bit chạy đc k?
e có xem qua sự khác nhau về 2 cái đấy r,nh ý e là cách chuyển,nếu có nhé
thanks all,mong mọi người chỉ giáo

viết 20:20 ngày 30/09/2018

cụ thể phần code ko tương thích là như thế nào…

leogem viết 20:30 ngày 30/09/2018
#include <windows.h>
#include <wchar.h>

int wmain(int argc, wchar_t **argv) 
{
    PDWORD cChars = NULL;
    HANDLE std = GetStdHandle(STD_OUTPUT_HANDLE);   
    
    if (std == INVALID_HANDLE_VALUE) {
        wprintf(L"Cannot retrieve standard output handle\n (%d)", 
            GetLastError());
    }
 
    WriteConsoleW(std, argv[1], wcslen(argv[1]), cChars, NULL);
 
    return EXIT_SUCCESS;
}
leogem viết 20:31 ngày 30/09/2018

cụ thể phần code ko tương thích là như thế nào…

e học 1 số code trên msdn thì thỏa mái,ksao
nh học code trên zetcode thì bị lỗi win trên build ( thích cái này vì trong code đơn giản hơn)

viết 20:20 ngày 30/09/2018

compile bằn MinGW hay bằng VC++? Bị lỗi Undefined reference to ‘WinMain’ gì phải ko, ta build thử với MinGW cũng bị

thêm -municode trong linker thì chạy được. Thử coi có được ko @_@

leogem viết 20:34 ngày 30/09/2018

compile bằn MinGW hay bằng VC++? Bị lỗi Undefined reference to ‘WinMain’ gì phải ko, ta build thử với MinGW cũng bị

thêm -municode trong linker thì chạy được. Thử coi có được ko @_@

cả 2 đều lỗi,…e nghĩ vấn đề là do máy cài win j :v
thử sửa code gửi hộ e xem vs :)) học hỏi luôn

viết 20:26 ngày 30/09/2018

compile:
g++ main.cpp -O2 -s -municode -o main

rồi chạy:
main.exe nguyễn

nếu ko thấy g++ thì thay bằng full đường dẫn tới g++.exe của mingw ấy. Ví dụ của ta là
H:\mingw32\bin\g++.exe

leogem viết 20:23 ngày 30/09/2018

compile:
g++ main.cpp -O2 -s -municode -o main

rồi chạy:
main.exe nguyễn

nếu ko thấy g++ thì thay bằng full đường dẫn tới g++.exe của mingw ấy. Ví dụ của ta là
H:\mingw32\bin\g++.exe

ồ :)) thanks all
quá hay :))
tiện thể e hỏi luôn còn 1 đống file về mingw32 jj exe thì để làm j ?

viết 20:35 ngày 30/09/2018

ta cũng ko biết

leogem viết 20:23 ngày 30/09/2018

lần trước theo hướng dẫn của a,e chạy exe là ok.sau 1 thời gian làm lại bị lỗi,chạy lại exe cũng k được…mong a xem giúp

viết 20:31 ngày 30/09/2018

vô Project -> Build options… Chọn thẻ Linker settings, trong box Other linker options thêm dòng -municode vô.


leogem viết 20:25 ngày 30/09/2018

e thử rồi và nó như thế này… e tra gg cũng thấy hướng dẫn liên quan

viết 20:29 ngày 30/09/2018

à vậy là xài nhầm file exe để compile rồi g++.exe chứ ko phải mingw32-g++.exe

vô Settings -> Compiler… rồi chọn thẻ Toolchain executables. Sửa lại compiler là g++.exe

leogem viết 20:20 ngày 30/09/2018

cái debug không giống a được??

viết 20:31 ngày 30/09/2018

cái Debug thì phải vô cái Settings -> Debugger… rồi sửa Executable path thành path tới gdb.exe. Sửa cái default cũng được, nếu chỉ xài 1 compiler, còn ko thì tạo cái config mới rồi sửa.

leogem viết 20:36 ngày 30/09/2018

e làm y hệt a rồi…compiler cũng để debug đến MinGW32 mà vẫn lỗi thế?
dùng VS thi ok ,e muốn thử codeblock mà khó nhỉ??

viết 20:25 ngày 30/09/2018

vô coi lại cái Linker coi -municode có bị thay đổi gì ko? Đưa luôn cái source để ta thử compile xem

cái debugger ko ảnh hưởng tới compiler, ko quan trọng lắm, compile được cái đã rồi set debugger sau cũng được.

down cái compiler này về thử: http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/5.2.0/threads-posix/dwarf/i686-5.2.0-release-posix-dwarf-rt_v4-rev1.7z/download

leogem viết 20:20 ngày 30/09/2018

cái đoạn code đơn giản bên trên ấy cũng bị lỗi thế? bác cứ chạy ok là dc…
tải compiler kia về rồi…thay thế cái mingw32 sẵn trong máy hay chỉ việc dẫn link vào codeblock??

leogem viết 20:34 ngày 30/09/2018

e chưa thay compiler mới thì cái -municode nó k báo lỗi nhưng k nhận dữ liệu liên kết municode,kiểu như không hiểu là gì ấy?

viết 20:36 ngày 30/09/2018

e chưa thay compiler mới thì cái -municode nó k báo lỗi nhưng k nhận dữ liệu liên kết municode,kiểu như không hiểu là gì ấy?

là sao ta ko hiểu

có lẽ ko cần thay compiler cũng được…

leogem viết 20:22 ngày 30/09/2018

k lỗi nhưng dòng chữ to xanh nè với 2 dòng đỏ…
e kiểm tra xem có file .exe của code chưa cũng k thấy có

Bài liên quan
0