943,681 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Marked Solved
  • Views: 534
  • C++ RSS
Oct 26th, 2008
0

Definition problem

Expand Post »
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
C++ Syntax (Toggle Plain Text)
  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. //---------------------------------------------------------------------------

C++ Syntax (Toggle Plain Text)
  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


C++ Syntax (Toggle Plain Text)
  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. //---------------------------------------------------------------------------


C++ Syntax (Toggle Plain Text)
  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
Similar Threads
Reputation Points: 46
Solved Threads: 0
Light Poster
uim_1977 is offline Offline
25 posts
since Oct 2008
Oct 26th, 2008
0

Re: Definition problem

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??????
Reputation Points: 46
Solved Threads: 0
Light Poster
uim_1977 is offline Offline
25 posts
since Oct 2008
Oct 27th, 2008
1

Re: Definition problem

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)
Reputation Points: 1105
Solved Threads: 389
Posting Virtuoso
mitrmkar is offline Offline
1,714 posts
since Nov 2007

This thread is solved

Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: Strange problem
Next Thread in C++ Forum Timeline: Soap and problem with timeout





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC