error C2664
[HTML]
#pragma once
#include "vscam.h"
#define CARD VS_CRD_VS60UG
#define CAMERA VS_CAM_DT_ICX075V2
static ref class Set
{
public:
UINT rc;
HCAMERA Cam;
void init()
{
rc = VsCamCreate2(&Cam,CARD,CAMERA);
}
};
[/HTML]
Выдает вот такую ошибку:
camera.h(22): error C2664: 'VsCamCreate2' : cannot convert parameter 1 from 'cli::interior_ptr<Type>' to 'HCAMERA *'
1> with
1> [
1> Type=HCAMERA
1> ]
1> Cannot convert a managed type to an unmanaged type[/HTML]
вообще я хотел объявить переменную Cam глобально, что бы я мог ей пользоваться в других классах.
а если делаю вот так:
[HTML]
Set ^se=gcnew Set();
rc = VsCamCreate2(se->&Cam,CARD,CAMERA);
;[/HTML]
то на & ругается, а без него ни как. Что делать? как Windows Form применять &?
Хватит уже мешать неуправляемый и управляемый код
можно по подробней???
Ещё раз: хотите писать под .NET, использовать прелести управляемого кода - сборку мусора и т. п. - переходите на C#.
Либо пишите на нативном C++. Как это определить? Создавая в Visual Studio проект на языке Visual C++ выбирайте любой тип проекта, кроме CLR.
Признаки управляемого кода: gcnew, ref class, значок ^ вместо * для ссылок.
По управляемому C++ очень мало литературы. В разы меньше, чем по неуправляемому и чем по шарпу. Говорю по собственному опыту. Сам когда-то пробовал писать на нём - казалось более привычным после обычного C++. И постоянно мне не хватало информации (её попросту не существует в природе). Когда я всё-таки попробовал Шарп - словно погрузился в нирвану ^^. Море информации захлестнуло...
Так как заставить & работать?
В managed C++ которым вы пользуетесь их точно также "нельзя" подключить как и в C#. Используйте или нативный C++ или разберитесь уже как организовывается взаимодействие с неуправляемым кодом в .NET