Разработка программ на пес его знает на чем
	
		
					Правила форума  
			При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете. 
А так же пользуйтесь спец. тегами при вставке исходников!!!
		
		
	 
	
		
		
		
			
				
								Admin 							 
						Администратор 			
		Сообщения:  4022  		Зарегистрирован:  05 Июль 2005, 15:59 		
		
																Откуда:  Хабаровск 
												    Благодарил (а):  59 раз  
    Поблагодарили:  42 раза  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Admin   »  24 Октябрь 2015, 5:12 
			
			
			
			
			
			два файла CPP_Demo.clw и cpp_module.cpp
оба компилируются но потом выдается:
Unresolved External _addition in CPP_Demo.obj
почему не находит?
Код: Выделить всё 
  PROGRAM
  MAP
    MODULE('cpp_module.cpp')
      addition(LONG, LONG), LONG, PASCAL, NAME('_addition')
    END
  END
  CODE
  MESSAGE(addition(10,10)) 
Код: Выделить всё 
int addition (int a, int b)
{
  int r;
  r = a + b;
  return r;
} 
			
			
									
						
							Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						 
		 
				
		
		 
	 
	Admin 
 
	
		
		
		
			
				
																			
								kreator 							 
						✯ Ветеран ✯ 			
		Сообщения:  5235  		Зарегистрирован:  28 Май 2009, 15:54 		
		
											Откуда:  Москва 
							    Благодарил (а):  11 раз  
    Поблагодарили:  26 раз  
						
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 kreator   »  24 Октябрь 2015, 13:33 
			
			
			
			
			
			А попробуй PASCAL на С заменить. Я Сишную библиотеку вот так подцепил:
Код: Выделить всё 
MODULE('cv')
  cvNamedWindow(*STRING,LONG),LONG,C,RAW,PROC
END
Прокатило и заработало.
 
			
			
									
						
							We are hard at work… for you.   
 			
						 
		 
				
		
		 
	 
	kreator 
 
	
		
		
		
			
				
								Admin 							 
						Администратор 			
		Сообщения:  4022  		Зарегистрирован:  05 Июль 2005, 15:59 		
		
																Откуда:  Хабаровск 
												    Благодарил (а):  59 раз  
    Поблагодарили:  42 раза  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Admin   »  24 Октябрь 2015, 13:37 
			
			
			
			
			
			Так ведь дело не в вызове а в линковке. В Clarion 6.3 работало. Сейчас проверить не могу т.к. на x64 сижу. Приходится в C10 писать. 
CPP на текущий момент не актуально уже. По теме SSL хотел кое что проверить.
			
			
									
						
							Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						 
		 
				
		
		 
	 
	Admin 
 
	
		
		
		
			
				
								Дед Пахом 							 
						Старичок 			
		Сообщения:  3346  		Зарегистрирован:  07 Июль 2005, 16:51 		
		
																Откуда:  Москва, Россия 
							    Благодарил (а):  20 раз  
    Поблагодарили:  56 раз  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Дед Пахом   »  24 Октябрь 2015, 16:17 
			
			
			
			
			
			Что-то в проекте не так, линковщик не видит сишный модуль.
			
			
									
						
							С уважением, ДП
			
						 
		 
				
		
		 
	 
	Дед Пахом 
 
	
		
		
		
			
				
																			
								Ал 							 
						✯ Ветеран ✯ 			
		Сообщения:  1059  		Зарегистрирован:  08 Июль 2005, 6:48 		
		
											Откуда:  Россия 
							    Благодарил (а):  1 раз  
    Поблагодарили:  1 раз  
						
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Ал   »  24 Октябрь 2015, 17:22 
			
			
			
			
			
			Admin писал(а): Так ведь дело не в вызове а в линковке. В Clarion 6.3 работало. Сейчас проверить не могу т.к. на x64 сижу. Приходится в C10 писать. 
CPP на текущий момент не актуально уже. По теме SSL хотел кое что проверить.
virtual pc нет или религия не позволяет?
 
			
			
									
						
										
						 
		 
				
		
		 
	 
	Ал 
 
	
		
		
		
			
				
								Admin 							 
						Администратор 			
		Сообщения:  4022  		Зарегистрирован:  05 Июль 2005, 15:59 		
		
																Откуда:  Хабаровск 
												    Благодарил (а):  59 раз  
    Поблагодарили:  42 раза  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Admin   »  24 Октябрь 2015, 17:40 
			
			
			
			
			
			Ал писал(а):  virtual pc нет или религия не позволяет?
Не стОит. На работе попробую. Virtual Box есть ... СentOS на нем кручу. 
 
			
			
									
						
							Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						 
		 
				
		
		 
	 
	Admin 
 
	
		
		
		
			
				
																			
								kreator 							 
						✯ Ветеран ✯ 			
		Сообщения:  5235  		Зарегистрирован:  28 Май 2009, 15:54 		
		
											Откуда:  Москва 
							    Благодарил (а):  11 раз  
    Поблагодарили:  26 раз  
						
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 kreator   »  25 Октябрь 2015, 12:32 
			
			
			
			
			
			Дед Пахом писал(а): Что-то в проекте не так, линковщик не видит сишный модуль.
Скорее всего, что или либа в проект не подключена, или её нет там, где должна быть.
 
			
			
									
						
							We are hard at work… for you.   
 			
						 
		 
				
		
		 
	 
	kreator 
 
	
		
		
		
			
				
								Admin 							 
						Администратор 			
		Сообщения:  4022  		Зарегистрирован:  05 Июль 2005, 15:59 		
		
																Откуда:  Хабаровск 
												    Благодарил (а):  59 раз  
    Поблагодарили:  42 раза  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Admin   »  25 Октябрь 2015, 12:35 
			
			
			
			
			
			модуль cpp_module.obj создается.  
_addition@Fii внутри присутствует.
			
			
									
						
							Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						 
		 
				
		
		 
	 
	Admin 
 
	
		
		
		
			
				
								Дед Пахом 							 
						Старичок 			
		Сообщения:  3346  		Зарегистрирован:  07 Июль 2005, 16:51 		
		
																Откуда:  Москва, Россия 
							    Благодарил (а):  20 раз  
    Поблагодарили:  56 раз  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Дед Пахом   »  25 Октябрь 2015, 13:10 
			
			
			
			
			
			а если cpp_module.obj включить в проект?
			
			
									
						
							С уважением, ДП
			
						 
		 
				
		
		 
	 
	Дед Пахом 
 
	
		
		
		
			
				
								Admin 							 
						Администратор 			
		Сообщения:  4022  		Зарегистрирован:  05 Июль 2005, 15:59 		
		
																Откуда:  Хабаровск 
												    Благодарил (а):  59 раз  
    Поблагодарили:  42 раза  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Admin   »  25 Октябрь 2015, 13:22 
			
			
			
			
			
			Не помогает.  
Помогло в атрибуте NAME прописать "_addition@Fii". Скомпилировалось. 
Но результат функции - лажа а не 20
			
			
									
						
							Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						 
		 
				
		
		 
	 
	Admin 
 
	
		
		
		
			
				
								Дед Пахом 							 
						Старичок 			
		Сообщения:  3346  		Зарегистрирован:  07 Июль 2005, 16:51 		
		
																Откуда:  Москва, Россия 
							    Благодарил (а):  20 раз  
    Поблагодарили:  56 раз  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Дед Пахом   »  25 Октябрь 2015, 13:27 
			
			
			
			
			
			кстати, почему PASCAL?
			
			
									
						
							С уважением, ДП
			
						 
		 
				
		
		 
	 
	Дед Пахом 
 
	
		
		
		
			
				
								Admin 							 
						Администратор 			
		Сообщения:  4022  		Зарегистрирован:  05 Июль 2005, 15:59 		
		
																Откуда:  Хабаровск 
												    Благодарил (а):  59 раз  
    Поблагодарили:  42 раза  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Admin   »  25 Октябрь 2015, 14:08 
			
			
			
			
			
			В данном случае по моему не важно. И да, оба варианта не работают 
В PASCAL еще и падает почему то, хотя не должно.
 
			
			
									
						
							Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						 
		 
				
		
		 
	 
	Admin 
 
	
		
		
		
			
				
								Admin 							 
						Администратор 			
		Сообщения:  4022  		Зарегистрирован:  05 Июль 2005, 15:59 		
		
																Откуда:  Хабаровск 
												    Благодарил (а):  59 раз  
    Поблагодарили:  42 раза  
							
				Контактная информация: 
				
			 
				
		 
		
						
					
													
							
						
									
						Сообщение 
					 
								 Admin   »  25 Октябрь 2015, 14:37 
			
			
			
			
			
			Вопрос решен 
 
Код: Выделить всё 
  PROGRAM
  MAP
    MODULE('cpp_module.cpp')
      addition(LONG, LONG), LONG, NAME('_addition')
    END
  END
  
  CODE
  MESSAGE(addition(10,10))
 
Код: Выделить всё 
extern "C" int addition (int a, int b)
{
  int r;
  r = a + b;
  return r;
} 
			
			
									
						
							Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
			
						 
		 
				
		
		 
	 
	Admin