Неразрешенный внешний символ LNK2001 с CPP_XLOPER

#c #32bit-64bit #xll

#c #32-битный-64-битный #xll

Вопрос:

Я переношу XLL с 32-разрядного на 64-разрядный с помощью VS2015 и C .

Я начал менять типы данных. Поэтому я переключил ‘int’ на ‘_int64’.

 CPP_XLOPER Create_XLOperHeader_form_Str(const wchar_t*aBegin,_int64 strlen,bool aTranspose){
	static CPP_XLOPER xlDefault(L" ");
	_int64 l = strlen;    

и он выдает мне ошибку:

 Error	
LNK2001	unresolved external symbol 
"class CPP_XLOPER __cdecl Create_XLOperTable_from_Str(wchar_t const *,__int64,bool,bool)" 
(?Create_XLOperTable_from_Str@@YA?AVCPP_XLOPER@@PEB_W_J_N2@Z)	  

Я думаю, мне нужно изменить ‘class CPP_XLOPER’, не так ли?

Любой намек приветствуется, заранее спасибо; излишек

Ответ №1:

Компоновщик метода, на который жалуется, имеет два последних параметра типа bool ...,int64,bool,bool) , в то время как тот, который вы изменили, имеет только один последний параметр типа bool . Либо вы удалили другой существующий метод, либо вы также удалили его bool из реализации (и только вы знаете, было ли это преднамеренным или нет). Но да, в целом вы должны исправить объявление функции, чтобы оно соответствовало определению.

Комментарии:

1. Ох. Вы правы. Я должен был это увидеть. Спасибо большое! Подтверждены ли миграции с 32 на 64 бит? Приветствую излишек