Блин со мной приключилась эта фигня в BDS 2006... В общем начал копаться. И вот чё накопал..
У меня есть структура, окруженная смотри на прагмы.
#pragma pack (push)
#pragma pack (1)
...
struct PDU_SMS_DELIVER
{
PPDU_SMS_DELIVER next; //организация списка
PDU_SC_ADDRESS_FIELDS sc; //sms center
PDU_SMS_FLAGS flags;
PDU_OA_ADDRESS_FIELDS oa; //Originating address
PDU_PROTOCOL_TYPE proto;
PDU_DCS_TYPE dcs;
PDU_TIMESTAMP sc_stamp; //Время когда центр принял sms
PDU_USER_DATA ud; //User data
};
#pragma pack (pop)
Ну и все работало, пока я не добавил это..
#pragma pack (push)
#pragma pack (1)
struct PDU_SMS_DELIVER
{
PPDU_SMS_DELIVER next; //организация списка
PDU_SC_ADDRESS_FIELDS sc; //sms center
PDU_SMS_FLAGS flags;
PDU_OA_ADDRESS_FIELDS oa; //Originating address
PDU_PROTOCOL_TYPE proto;
PDU_DCS_TYPE dcs;
PDU_TIMESTAMP sc_stamp; //Время когда центр принял sms
PDU_USER_DATA ud; //User data
CStrList at_fields; //Поля AT запроса
};
#pragma pack (pop)
CStrList - сложный класс. До его добавления структура реально имела простые структ мемберы
Исправив на вот это
#pragma pack (push)
#pragma pack (1)
...
#pragma pack (pop)
struct PDU_SMS_DELIVER
{
PPDU_SMS_DELIVER next; //организация списка
PDU_SC_ADDRESS_FIELDS sc; //sms center
PDU_SMS_FLAGS flags;
PDU_OA_ADDRESS_FIELDS oa; //Originating address
PDU_PROTOCOL_TYPE proto;
PDU_DCS_TYPE dcs;
PDU_TIMESTAMP sc_stamp; //Время когда центр принял sms
PDU_USER_DATA ud; //User data
CStrList at_fields; //Поля AT запроса
};
Линкер перестал вылетать.. Там где 3 точки - определения с структур мемберов этой..
К тому моменту, как я начал билдить проект и получил этот баг, я изменил очень много
чего.. Поэтому начитался про него по самое не хочу.