Definition problem

Please support our C++ advertiser: Intel Parallel Studio Home
Thread Solved

Join Date: Oct 2008
Posts: 25
Reputation: uim_1977 is an unknown quantity at this point 
Solved Threads: 0
uim_1977 uim_1977 is offline Offline
Light Poster

Definition problem

 
0
  #1
Oct 26th, 2008
Hello Peopel!!!!

I have a problem with a definiton. I have defined a form, in dll, then i had to include the file in the same form, after compiling i'm getting worning Public symbol '_DllCustomers' defined in both module CUSTOMERDLL.OBJ and CUSTOMERFORM.OBJ

here is the code
  1. //---------------------------------------------------------------------------
  2. //CUSTOMERDLL.CPP
  3. #include <vcl.h>
  4. #include <windows.h>
  5. #pragma hdrstop
  6.  
  7. #pragma argsused
  8. #include "customerdll.h"
  9. int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
  10. {
  11. return 1;
  12. }
  13. //---------------------------------------------------------------------------
  14. void __stdcall CreateCustomer(TComponent* Owner)
  15. {
  16. DllCustomer = new TCustomerF (Owner);
  17. DllCustomer->ShowModal();
  18. }
  19. //----------------------------------------------------------------------------
  20.  
  21.  
  22. void __fastcall Search (AnsiString NameP, AnsiString FieldP, TIBTable* Table)
  23. {
  24.  
  25. TLocateOptions Opts;
  26. Opts.Clear();
  27. Opts << loPartialKey;
  28. Opts << loCaseInsensitive;
  29. Table->Locate(FieldP,NameP, Opts );
  30. Table->IndexFieldNames=FieldP;
  31. }
  32. //---------------------------------------------------------------------------

  1. //CUSTOMERDLL.H
  2. #ifndef DllH
  3. #define DllH
  4. #include "customerForm.h"
  5. TCustomerF* DllCustomer;
  6. //---------------------------------------------------------------------
  7. void __fastcall Search (AnsiString, AnsiString, TIBTable*);
  8. extern "C" __declspec(dllexport) __stdcall void CreateCustomer(TComponent *Owner);
  9. //---------------------------------------------------------------------
  10. #endif


  1.  
  2. // CUSTOMERFORM.CPP
  3. //$$---- Form CPP ----
  4.  
  5. //---------------------------------------------------------------------------
  6. #include <vcl.h>
  7. #include <Inifiles.hpp>
  8. #pragma hdrstop
  9. #include "customerdll.h"
  10. #include "CustomerForm.h"
  11. #include "DataModul.h"
  12. #include "CustSearch.h"
  13. //---------------------------------------------------------------------------
  14. #pragma package(smart_init)
  15. #pragma link "IBCustomDataSet"
  16. #pragma link "IBDatabase"
  17. #pragma link "IBTable"
  18. #pragma resource "*.dfm"
  19.  
  20. TSearchCustomerF* DllCustomerSearch;
  21. TCustomerF *CustomerF;
  22. Pointer GenPointer;
  23. //---------------------------------------------------------------------------
  24. __fastcall TCustomerF::TCustomerF(TComponent* Owner)
  25. : TForm(Owner)
  26. {
  27. }
  28. //---------------------------------------------------------------------------
  29.  
  30. void __stdcall CreateCustomerSearch(TComponent* Owner)
  31. {
  32. DllCustomerSearch = new TSearchCustomerF (Owner);
  33. DllCustomerSearch->ShowModal();
  34. }
  35. //---------------------------------------------------------------------------


  1. //CUSTOMERFORM.H
  2. //$$---- Form HDR ----
  3. //---------------------------------------------------------------------------
  4.  
  5. #ifndef CustomerFormH
  6. #define CustomerFormH
  7. //---------------------------------------------------------------------------
  8. #include <Classes.hpp>
  9. #include <Controls.hpp>
  10. #include <StdCtrls.hpp>
  11. #include <Forms.hpp>
  12. #include "IBCustomDataSet.hpp"
  13. #include "IBDatabase.hpp"
  14. #include "IBTable.hpp"
  15. #include <DB.hpp>
  16. #include <DBCtrls.hpp>
  17. #include <DBGrids.hpp>
  18. #include <ExtCtrls.hpp>
  19. #include <Grids.hpp>
  20. #include <Mask.hpp>
  21. #include <Buttons.hpp>
  22. #include <ComCtrls.hpp>
  23. //---------------------------------------------------------------------------
  24. class TCustomerF : public TForm
  25. {
  26. __published: // IDE-managed Components
  27. TIBTable *IBTable1;
  28. TIBTransaction *IBTransaction1;
  29. TSmallintField *IBTable1ID;
  30. TSmallintField *IBTable1TYPE_ID;
  31. TIBStringField *IBTable1NAME;
  32. TIBStringField *IBTable1ADDRESS_LINE_1;
  33. TIBStringField *IBTable1ADDRESS_LINE_2;
  34. TIBStringField *IBTable1CITY;
  35. TIBStringField *IBTable1STATE;
  36. TIBStringField *IBTable1ZIP;
  37. TIBStringField *IBTable1COUNTRY;
  38. TIBStringField *IBTable1PHONE_1;
  39. TIBStringField *IBTable1EXTENSION_1;
  40. TIBStringField *IBTable1PHONE_2;
  41. TIBStringField *IBTable1EXTENSION_2;
  42. TIBStringField *IBTable1FAX;
  43. TIBStringField *IBTable1EMAIL_1;
  44. TIBStringField *IBTable1EMAIL_2;
  45. TIBStringField *IBTable1SKYP_1;
  46. TIBStringField *IBTable1SKYP_2;
  47. TIBStringField *IBTable1ICQ_1;
  48. TIBStringField *IBTable1ICQ_2;
  49. TIBStringField *IBTable1WEB;
  50. TIBStringField *IBTable1TAX_ID;
  51. TIBStringField *IBTable1COMMENTS;
  52. TIBStringField *IBTable1ENTERED_BY;
  53. TDateTimeField *IBTable1ENTERED_TIME;
  54. TDataSource *DataSource1;
  55. TGroupBox *GroupBox1;
  56. TDBEdit *DBEdit3;
  57. TLabel *Label3;
  58. TLabel *Label1;
  59. TDBEdit *DBEdit1;
  60. TSpeedButton *SpeedButton1;
  61. TSpeedButton *SpeedButton2;
  62. TLabel *Label10;
  63. TDBEdit *DBEdit10;
  64. TLabel *Label11;
  65. TDBEdit *DBEdit11;
  66. TBevel *Bevel1;
  67. TBevel *Bevel2;
  68. TIBTable *IBTable2;
  69. TIBTransaction *IBTransaction2;
  70. TStringField *IBTable1CUSTOMER_TYPE;
  71. TIBTable *IBTable3;
  72. TIBTransaction *IBTransaction3;
  73. TSmallintField *IBTable3UP_LINK;
  74. TIBStringField *IBTable3NAME;
  75. TSmallintField *IBTable3ADDRESS_TYPE;
  76. TIBStringField *IBTable3ADDRESS_1;
  77. TIBStringField *IBTable3ADDRESS_2;
  78. TIBStringField *IBTable3CITY;
  79. TIBStringField *IBTable3STATE;
  80. TIBStringField *IBTable3ZIP;
  81. TIBStringField *IBTable3COUNTRY;
  82. TIBStringField *IBTable3CONTACT;
  83. TIBStringField *IBTable3PHONE_1;
  84. TIBStringField *IBTable3EXTENSION;
  85. TIBStringField *IBTable3PHONE_2;
  86. TIBStringField *IBTable3FAX;
  87. TIBStringField *IBTable3EMAIL_1;
  88. TIBStringField *IBTable3EMAIL_2;
  89. TIBStringField *IBTable3SKYP_1;
  90. TIBStringField *IBTable3SKYP_2;
  91. TIBStringField *IBTable3ICQ_1;
  92. TIBStringField *IBTable3ICQ_2;
  93. TIBStringField *IBTable3COMMENTS;
  94. TDataSource *DataSource2;
  95. TIBTable *IBTable4;
  96. TStringField *IBTable3DELIVERY_TYPE;
  97. TPageControl *PageControl1;
  98. TTabSheet *TabSheet1;
  99. TBevel *Bevel3;
  100. TLabel *Label4;
  101. TLabel *Label6;
  102. TLabel *Label7;
  103. TLabel *Label8;
  104. TLabel *Label9;
  105. TLabel *Label2;
  106. TLabel *Label5;
  107. TLabel *Label12;
  108. TLabel *Label13;
  109. TLabel *Label14;
  110. TLabel *Label15;
  111. TLabel *Label16;
  112. TLabel *Label17;
  113. TLabel *Label18;
  114. TLabel *Label19;
  115. TSpeedButton *SpeedButton3;
  116. TSpeedButton *SpeedButton4;
  117. TLabel *Label20;
  118. TLabel *Label21;
  119. TLabel *Label22;
  120. TLabel *Label23;
  121. TLabel *Label24;
  122. TDBEdit *DBEdit4;
  123. TDBEdit *DBEdit5;
  124. TDBEdit *DBEdit6;
  125. TDBEdit *DBEdit7;
  126. TDBEdit *DBEdit8;
  127. TDBEdit *DBEdit9;
  128. TDBEdit *DBEdit12;
  129. TDBEdit *DBEdit13;
  130. TDBEdit *DBEdit14;
  131. TDBEdit *DBEdit15;
  132. TDBEdit *DBEdit16;
  133. TDBEdit *DBEdit17;
  134. TDBEdit *DBEdit18;
  135. TDBEdit *DBEdit19;
  136. TDBEdit *DBEdit20;
  137. TDBEdit *DBEdit21;
  138. TDBEdit *DBEdit22;
  139. TDBEdit *DBEdit23;
  140. TDBEdit *DBEdit24;
  141. TDBGrid *DBGrid1;
  142. TDBLookupComboBox *DBLookupComboBox1;
  143. TTabSheet *TabSheet2;
  144. TBevel *Bevel4;
  145. TTabSheet *TabSheet4;
  146. TBevel *Bevel6;
  147. TLabel *Label25;
  148. TLabel *Label26;
  149. TLabel *Label27;
  150. TLabel *Label29;
  151. TLabel *Label30;
  152. TLabel *Label28;
  153. TLabel *Label31;
  154. TLabel *Label32;
  155. TLabel *Label33;
  156. TLabel *Label34;
  157. TLabel *Label35;
  158. TLabel *Label36;
  159. TLabel *Label37;
  160. TLabel *Label38;
  161. TLabel *Label39;
  162. TLabel *Label40;
  163. TLabel *Label41;
  164. TLabel *Label42;
  165. TSpeedButton *SpeedButton5;
  166. TSpeedButton *SpeedButton6;
  167. TDBEdit *DBEdit2;
  168. TDBEdit *DBEdit26;
  169. TDBEdit *DBEdit27;
  170. TDBEdit *DBEdit28;
  171. TDBEdit *DBEdit29;
  172. TDBEdit *DBEdit30;
  173. TDBEdit *DBEdit31;
  174. TDBEdit *DBEdit32;
  175. TDBEdit *DBEdit33;
  176. TDBEdit *DBEdit34;
  177. TDBEdit *DBEdit35;
  178. TDBEdit *DBEdit36;
  179. TDBEdit *DBEdit25;
  180. TDBEdit *DBEdit37;
  181. TDBEdit *DBEdit38;
  182. TDBEdit *DBEdit39;
  183. TDBEdit *DBEdit40;
  184. TDBEdit *DBEdit41;
  185. TDBLookupComboBox *DBLookupComboBox2;
  186. TDBMemo *DBMemo2;
  187. TDBGrid *DBGrid2;
  188. TTabSheet *TabSheet3;
  189. TBevel *Bevel5;
  190. TDBMemo *DBMemo1;
  191. TDBNavigator *DBNavigator1;
  192. TButton *Button1;
  193. TButton *Button3;
  194. TTabSheet *TabSheet5;
  195. TBevel *Bevel7;
  196. TIBStringField *IBTable1PH_ADDRESS_LINE_1;
  197. TIBStringField *IBTable1PH_ADDRESS_LINE_2;
  198. TIBStringField *IBTable1PH_CITY;
  199. TIBStringField *IBTable1PH_STATE;
  200. TIBStringField *IBTable1PH_ZIP;
  201. TSmallintField *IBTable1PH_COUNTRY;
  202. TLabel *Label43;
  203. TDBEdit *DBEdit42;
  204. TDBEdit *DBEdit43;
  205. TLabel *Label45;
  206. TDBEdit *DBEdit44;
  207. TLabel *Label46;
  208. TDBEdit *DBEdit45;
  209. TLabel *Label47;
  210. TDBEdit *DBEdit46;
  211. TLabel *Label48;
  212. TDBEdit *DBEdit47;
  213. TIBTable *IBTable5;
  214. TIBTransaction *IBTransaction4;
  215. TSmallintField *IBTable5UP_LINK;
  216. TIBStringField *IBTable5F_NAME;
  217. TIBStringField *IBTable5L_MANE;
  218. TIBStringField *IBTable5TITLE;
  219. TIBStringField *IBTable5PHONE_1;
  220. TIBStringField *IBTable5EXTENSION;
  221. TIBStringField *IBTable5PHONE_2;
  222. TIBStringField *IBTable5FAX;
  223. TIBStringField *IBTable5EMAIL_1;
  224. TIBStringField *IBTable5EMAIL_2;
  225. TIBStringField *IBTable5SKYP_1;
  226. TIBStringField *IBTable5SKYP_2;
  227. TIBStringField *IBTable5ICQ_1;
  228. TIBStringField *IBTable5ICQ_2;
  229. TLabel *Label44;
  230. TDBEdit *DBEdit48;
  231. TDataSource *DataSource3;
  232. TLabel *Label49;
  233. TDBEdit *DBEdit49;
  234. TLabel *Label50;
  235. TDBEdit *DBEdit50;
  236. TLabel *Label51;
  237. TDBEdit *DBEdit51;
  238. TLabel *Label52;
  239. TDBEdit *DBEdit52;
  240. TLabel *Label53;
  241. TDBEdit *DBEdit53;
  242. TLabel *Label54;
  243. TDBEdit *DBEdit54;
  244. TLabel *Label55;
  245. TDBEdit *DBEdit55;
  246. TLabel *Label56;
  247. TDBEdit *DBEdit56;
  248. TLabel *Label57;
  249. TDBEdit *DBEdit57;
  250. TLabel *Label58;
  251. TDBEdit *DBEdit58;
  252. TButton *Button2;
  253. TButton *Button4;
  254. TButton *Button5;
  255. TButton *Button6;
  256. TLabel *Label59;
  257. TDBEdit *DBEdit59;
  258. TLabel *Label60;
  259. TDBEdit *DBEdit60;
  260. TSpeedButton *SpeedButton7;
  261. TSpeedButton *SpeedButton8;
  262. TDBGrid *DBGrid3;
  263. TButton *Button7;
  264. TButton *Button8;
  265. TButton *Button9;
  266. void __fastcall Button3Click(TObject *Sender);
  267. void __fastcall Button1Click(TObject *Sender);
  268. void __fastcall IBTable1AfterEdit(TDataSet *DataSet);
  269. void __fastcall IBTable1AfterInsert(TDataSet *DataSet);
  270. void __fastcall IBTable1AfterTransactionEnd(TObject *Sender);
  271. void __fastcall IBTable1AfterOpen(TDataSet *DataSet);
  272. void __fastcall Button2Click(TObject *Sender);
  273. void __fastcall IBTable1AfterCancel(TDataSet *DataSet);
  274. void __fastcall TabSheet4Enter(TObject *Sender);
  275. void __fastcall TabSheet5Enter(TObject *Sender);
  276. void __fastcall FormCreate(TObject *Sender);
  277. void __fastcall Button4Click(TObject *Sender);
  278. void __fastcall Button5Click(TObject *Sender);
  279. void __fastcall Button6Click(TObject *Sender);
  280. void __fastcall Button7Click(TObject *Sender);
  281. void __fastcall Button8Click(TObject *Sender);
  282. void __fastcall Button9Click(TObject *Sender);
  283. void __fastcall IBTable3AfterTransactionEnd(TObject *Sender);
  284. void __fastcall IBTable3AfterOpen(TDataSet *DataSet);
  285. void __fastcall IBTable3AfterInsert(TDataSet *DataSet);
  286. void __fastcall IBTable3AfterEdit(TDataSet *DataSet);
  287. void __fastcall IBTable5AfterTransactionEnd(TObject *Sender);
  288. void __fastcall IBTable5AfterPost(TDataSet *DataSet);
  289. void __fastcall IBTable5AfterOpen(TDataSet *DataSet);
  290. void __fastcall IBTable5AfterInsert(TDataSet *DataSet);
  291. void __fastcall SpeedButton3Click(TObject *Sender);
  292. void __fastcall SpeedButton4Click(TObject *Sender);
  293. void __fastcall SpeedButton5Click(TObject *Sender);
  294. void __fastcall SpeedButton6Click(TObject *Sender);
  295. void __fastcall SpeedButton7Click(TObject *Sender);
  296. void __fastcall SpeedButton8Click(TObject *Sender);
  297. void __fastcall DBEdit3KeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
  298. void __fastcall DBEdit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
  299. void __fastcall SpeedButton1Click(TObject *Sender);
  300. private: // User declarations
  301. public: // User declarations
  302. __fastcall TCustomerF(TComponent* Owner);
  303. AnsiString __fastcall TCustomerF::GetPath();
  304. void __fastcall TCustomerF::Save(TIBTable*, TIBTransaction*);
  305.  
  306. };
  307. //---------------------------------------------------------------------------
  308. extern PACKAGE TCustomerF *CustomerF;
  309. //---------------------------------------------------------------------------
  310. #endif


Can anyone tall me what i'm doing wrong?
it does work with a Worning, but i'm trying to write it correctly, please help
Reply With Quote Quick reply to this message  
Join Date: Oct 2008
Posts: 25
Reputation: uim_1977 is an unknown quantity at this point 
Solved Threads: 0
uim_1977 uim_1977 is offline Offline
Light Poster

Re: Definition problem

 
0
  #2
Oct 26th, 2008
People i realy need some help with this!!!
It doesnot give a worning if i dont invlude Customerdll.h in Customerform but i need to include it to use Search function in Customerform placeing the function in Customerform is not an option, cose the function is supposed to be used from another form also.. so please can anyone help??????
Reply With Quote Quick reply to this message  
Join Date: Nov 2007
Posts: 979
Reputation: mitrmkar is just really nice mitrmkar is just really nice mitrmkar is just really nice mitrmkar is just really nice mitrmkar is just really nice 
Solved Threads: 209
mitrmkar mitrmkar is offline Offline
Posting Shark

Re: Definition problem

 
1
  #3
Oct 27th, 2008
Try with these changes

//CUSTOMERDLL.H
#ifndef DllH
#define DllH
#include "customerForm.h"
extern TCustomerF* DllCustomer;
//---------------------------------------------------------------------
void __fastcall Search (AnsiString, AnsiString, TIBTable*);
extern "C" __declspec(dllexport) __stdcall void CreateCustomer(TComponent *Owner);
//---------------------------------------------------------------------
#endif

//---------------------------------------------------------------------------
//CUSTOMERDLL.CPP
#include <vcl.h>
#include <windows.h>
#pragma hdrstop

#pragma argsused
#include "customerdll.h"

TCustomerF* DllCustomer = NULL;

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
	return 1;
}
//---------------------------------------------------------------------------
void __stdcall CreateCustomer(TComponent* Owner)
{
	DllCustomer = new TCustomerF (Owner);
	DllCustomer->ShowModal();
}
//----------------------------------------------------------------------------


void __fastcall Search (AnsiString NameP, AnsiString FieldP, TIBTable* Table)
 {

	TLocateOptions Opts;
	Opts.Clear();
	Opts << loPartialKey;
	Opts << loCaseInsensitive;
Table->Locate(FieldP,NameP, Opts );
 Table->IndexFieldNames=FieldP;
}
//---------------------------------------------------------------------------

Try reading up on usage of extern , once you get the idea of it, you might reorganize the code a bit (you already have one extern TCustomerF* declaration there but it seems that you are not using it)
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



Tag cloud for C++
About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC