sách gpt4 ai đã đi

Định nghĩa C++ của thành viên dữ liệu tĩnh dllimport

In lại Tác giả: IT Lao Gao Thời gian cập nhật: 2023-10-28 22:01:20 29 4
mua khóa gpt4 Nike

Tôi có một lớp trông như thế này:

//.h tập tin
lớp __declspec(dllimport) MyClass
{
công cộng:
//chất liệu
riêng tư:

int tĩnh myInt;
};

// tập tin .cpp
int MyClass::myInt = 0;

Tôi nhận được lỗi biên dịch sau:

lỗi C2491: 'MyClass::myInt': định nghĩa của thành viên dữ liệu tĩnh dllimport không được phép

tôi phải làm gì?

1 Câu trả lời

__declspec(dllimport) Chỉ ra mã hiện tạisử dụngMột DLL triển khai lớp của bạn. Do đó, các hàm thành viên và thành viên dữ liệu tĩnh được định nghĩa trong DLL và sẽ là lỗi nếu định nghĩa lại chúng trong chương trình của bạn.

Nếu bạn đang cố gắng viết mã cho một DLL triển khai lớp này (do đó định nghĩa các hàm thành viên và các thành viên dữ liệu tĩnh), bạn sẽ cần đánh dấu lớp bằng __declspec(dllxuất khẩu).

Người ta thường sử dụng macro cho mục đích này. Khi bạn xây dựng DLL, bạn định nghĩa một macro TÒA NHÀ_MYDLL hoặc tương tự. hiện hữu Lớp học của tôi Trong tiêu đề bạn sẽ có:

    #ifdef _MSC_VER
# ifdef XÂY DỰNG_MYDLL
#define MYCLASS_DECLSPEC __declspec(dllexport)
# khác
#define MYCLASS_DECLSPEC __declspec(dllimport)
# kết thúc nếu
#kết thúc nếu

lớp MYCLASS_DECLSPEC MyClass
{
...
};

Điều này có nghĩa là bạn có thể chia sẻ tiêu đề giữa DLL của mình và các ứng dụng sử dụng nó.

Liên quan đến định nghĩa C++ về thành viên dữ liệu tĩnh dllimport, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/3491990/

29 4 0
CNTT Lao Gao
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com