Я тоже столкнулся с этим. Основываясь на этой ошибке, которую я обнаружил в проекте npapi, я решил проблему, не используя макрос, а вместо этого используя то, к чему он расширяется, а затем применяя то, что показывает патч.
http://code.google.com/p/npapi-headers/issues/detail?id=3
- NPString str = {_val, uint32_t (strlen (_val))};
+ NPString str = {_val, (uint32_t) (strlen (_val))};
По сути, заключите uint32_t в круглые скобки, затем gcc скомпилирует его.
Таким образом, полная замена макроса
NPVariant type;
type.type = NPVariantType_String;
NPString str = { "click", (uint32_t)(strlen("click")) };
type.value.stringValue = str;