ฉันกำลังสร้าง DLL และส่งออกฟังก์ชัน SimpleMAPI DLL และหนึ่งในลายเซ็นของฟังก์ชันมีดังต่อไปนี้:
extern "C" ULONG __declspec(dllexport) WINAPI MAPISendMail(LHANDLE lhSession, ULONG_PTR ulUIParam, lpMapiMessage lpMessage, FLAGS flFlags, ULONG ulReserved);
ฉันใช้ C++ Builder โดยใช้คอมไพเลอร์เสียงดังกราว คำเตือนปัญหาคอมไพเลอร์:
[bcc32c Warning]: redeclaration of 'MAPISendMail' should not add 'dllexport' attribute mapi.h(262): previous declaration is here
มันรวบรวมและใช้งานได้ แต่ฉันกังวลกับคำเตือนนี้ สามารถหลีกเลี่ยงได้หรือไม่?
MAPISendMail()
ได้รับการ ประกาศ ใน<mapi.h>
แล้ว และคุณกำลังพยายาม ประกาศซ้ำ แตกต่างออกไป หากคุณต้องการ ใช้ SimpleMAPI คุณจะต้องรวม<mapi.h>
แต่ถ้าคุณต้องการ ใช้งาน SimpleMAPI ไม่ต้องใส่<mapi.h>
คัดลอกการประกาศบางส่วนที่ฟังก์ชันของคุณต้องการ (lpMapiMessage
ฯลฯ) ลงในโค้ดของคุณเอง ดูตัวอย่างนี้ - person Remy Lebeau   schedule 25.04.2021