сообщество программистов

error C4956: 'char *' : this type is not verifiable

цитата:

To illustrate: the new C++ compiler has an option /cli:safe. But in
order to be "safe", you have to give up pointers. Adding #include
to your program causes errors such as:

error C4956: 'char *' : this type is not verifiable

здесь сказано что опция компилятора /cli:safe принуждает отказаться от использования указателей

error C2201: must have external linkage in order to be exported/imported

error C2201: must have external linkage in order to be exported/imported

Если вы импортируете из dll функцию (= хотите что в дальнейшем эта функция была импортирована)
и в заголовочном файле используйте такой приём, то убедитесь что в коде перед именем функции стоит только GUI_CTRLS_EXPORT (или ваше определение) и ничего более -то есть должно быть так:

 GUI_CTRLS_EXPORT void myfunc()
{
// код функции
}

warning C4273 inconsistent dll linkage

Если в заголовочном файле dll библиотеки вы используете код вроде:

#ifdef _GUICTRLS 
   #define GUI_CTRLS_EXPORT __declspec(dllexport) 
#else 
   #define GUI_CTRLS_EXPORT  __declspec(dllimport) 
#endif 

то убедитесь, что слово _GUICTRLS определёно (добавьте его к имеющимся) в :

C/C++ -> Preprocessor -> Preprocessor Definitions.

C++ ошибка fatal error LNK1302: only support linking safe .netmodules; unable to link ijw/native .netmodule

fatal error LNK1302: only support linking safe .netmodules; unable to link ijw/native .netmodule

чтобы исправить - установите опцию Common Language Runtime Support =

Safe MSIL Common Language Runtime Support (/clr:safe)

Visual Studio (VS C++) dll не создаётся lib файл

Чтобы он создался надо явно с помощью модификатора __declspec(dllexport) указать какие именно функции нужно экспортировать.

Так, например в коде нашей dll нужно вместо

double Add(double a, double b)
{return a; }

написать:

__declspec(dllexport) double Add(double a, double b);
{return a; }

- если мы хотим использовать функцию Add() во внешнем коде.

Ошибка: error C2871: 'System' : a namespace with this name does not exist

Ошибка: error C2871: 'System' : a namespace with this name does not exist

Чтобы исправить выбираем свойства проекта:

Project ->  properties -> General -> Common Language Runtime Support

Common Language Runtime Support устанавливаем = Common Language Runtime Support (/clr)

Использовать в console application функции из winforms (преобразовать) console application to winforms

Чтобы использовать в вашем приложении функции, которые работают с формами - необходимо добавить зависимости.
Переходим:

Project -> Properties -> Common Prop -> Farmework & References

И добавляем зависимвости которые вам нужны, например такие:

System
System.Data
System.Drawing
System.Windows.Forms
System.Xml

error C2491: 'std::endl' : definition of dllimport function not allowed

возможное решение этой проблемы на СИ++ здесь: http://fkn.ktu10.com/?q=node/5035

Ошибка error C2491: 'std::endl' : definition of dllimport function not allowed

error C2491: 'std::endl' : definition of dllimport function not allowed

Если вы собираете PHP расширение, то поможет вот такая вот добавка в файл zend_config.w32.h (пробелы внутри угловых скобок не нужны):

 #include < string > 

Именно string, а не string.h

Pages

Subscribe to RSS - сообщество программистов