Jump to content

  • Log In with Google      Sign In   
  • Create Account

Calling all IT Pros from Canada and Australia.. we need your help! Support our site by taking a quick sponsored surveyand win a chance at a $50 Amazon gift card. Click here to get started!


Like
0Likes
Dislike

Static Library Tips

By Sobeit Void | Published Nov 01 2001 05:25 PM in General Programming

library static lib client convention compiler versions functions
If you find this article contains errors or problems rendering it unreadable (missing images or files, mangled code, improper text formatting, etc) please contact the editor so corrections can be made. Thank you for helping us improve this resource

August 1, 2001

Static libraries are precompiled code modules. Creating and using them is easy in Visual C++. Using them correctly and efficiently, however, is not so straightforward.

I assume you are familiar with static libraries and how to create them. This articles focus on issues with static libraries, not how to create them. The compiler used in the article is Visual C++ 6.0, but the idea should apply to other compilers.


Introduction

A static library is precompiled into object code. In Visual C++, this is a .lib file that can be linked with other projects. I refer to these projects as clients.

Every project has different settings to compile. The static library should not force the client compiler settings. The project settings are accessible at Project->Settings->C++->Project Options.

Since the static library code is precompiled, conflicting settings may occur. The purpose of this article is, therefore, to give you foresight into these issues so you may avoid them.


Calling Convention

A function declared like

void Function();

is actually seen by the compiler as

void  calling_convention Function();

A compiler flag controls the default calling convention for functions that do not specify the calling convention.

The calling convention in a VC++ project defaults to _cdecl (/Gz). However, there exist other calling conventions that are more efficient (i.e _stdcall /Gr ). We cannot assume clients will use _cdecl as the default, therefore we should declare the calling convention in every interface function exposed in the static library header file. If not, differing calling conventions in the client and the precompiled library usually result in an unresolved error during linking.

Note: Class member functions must use the _thiscall calling convention, so you don't have to declare the calling convention for them. Only free functions and static functions require the declaration.

Example

void _cdecl  Free_Function();

class   MyClass
{
  static void _cdecl   Static_Function();

  void  Member_Function();
}

Tip: Don't assume the calling convention of free and non-static member functions.

If you look at the win32 API, you will notice the API functions are declared like so

HWND WINAPI CreateWindowEx(..)

WINAPI is actually a macro that is defined as _stdcall. So, the Windows libraries are doing essentially the same thing.


C Runtime Library

More often than not, your static library uses standard C functions. The static library then compiles with the C runtime libraries.

The problem is there are several versions of the runtime library - single, multithreaded, and multithreaded DLL, as well debug versions of those, making a total of 6 versions (/ML, /MT, /MD, /MLd, /MTd, /MDd).

The static library compiles with one version; the client can compile with another. A conflict occurs and usually, a warning is generated.

The solution is
  • Force the client to link the same runtime library as our static library.
  • Provide 6 different versions of the library.
To me, Solution 1 is unacceptable, yet I see it almost all the time (even in professional packages which I will not name).

My solution is
  • Provide 6 different versions of the static library
  • Define a naming convention for naming the .lib file.
  • Provide a name decoration scheme that links in the correct .lib file based on client project settings
For the naming convention, I append the .lib with a suffix that distinguishes the runtime library linked.

So, for example, if my static library is called MyLibrary, I have six .lib files:

MyLibrary.lib    	// single threaded
MyLibraryMT.lib  	// multithreaded
MyLibraryRT.lib   // multithreaded dll
MyLibraryD.lib    // debug versions
MyLibraryMTD.lib
MyLibraryRTD.lib

VC++ 6.0 automatically defines the _DEBUG, _MT and _DLL based on the runtime library linked.

By using #ifdef and detecting if the macros are defined, I create a library name decoration macro that's a string, and add the correct suffix. The client links in the library using the macro

#pragma comment( lib, LIB_NAME_DECORATION("MyLibrary") );

Tip: Don't assume which C run time library is linked


Exception handling and RTTI

I recently got a strange phenomenon in my code. Calling typeid on an object would crash the program and the crash occurred in the depths of kernel32.dll, so it was almost impossible to debug. (Ok, I'm not so good at reading assembly code, especially when it's with MS code). Anyway, it was crashing at some kernel thread switching call, and I couldn't figure out why.

The problem? I was linking in a static library that was compiled without RTTI and I was calling typeid on one of the library objects.

The most dangerous part is the compiler does not produce warnings, even at level 4. Ouch.

The moral of the story is compile the static library with exceptions enabled (/GX) and RTTI (/GR).

Some of you may think, "I'm not going to use exceptions and RTTI so this overhead is unacceptable".

Well, you may not use those features but can you be certain your clients don't? The alternative is to create another 6 versions of static library that are optimized not to use exceptions and RTTI. You wouldn't like that, would you?

While you are at it, add the flag /EHa to the compiler to enable asynchronous exception handling. It is not enabled by default and you have to add it manually in the project settings dialog.

To me, correctness is preferable over speed so I prefer async EH over sync EH.


Debugging Info

So, you shipped your static library and clients are happily using it. Then one day, your client comes to you, "This code causes a crash inside your static library, but I can't really find out whether it's your bug or my fault because the debugger doesn't work".

Finding crash bugs without debugging symbols is like finding a needle in a haystack. You need to read (gasp) assembly code to figure out the bug.

The situation is easily avoided by compiling the static library with debugging info so your client can use the debugger to find out the problem. (And maybe in the process help you find a bug in your static library.)

Tip: Compile the static library with debugging information.

I recommend compiling with C7 compatible debug (/Z7) for a static library. This allows debugging info to be placed inside the .lib files, so it saves the hassle of locating the program database if you generate it separately.

One important thing to take note is with debugging info enabled, the client can reverse engineer your static library. If this is not acceptable, then compile with the Line Number Only (/Zd). This gives the debugger access to public functions and data only (which of course the client should have access to already).

BTW, when compiling a release version of the library, it is advisable to compile with debugging info too. I recommend compiling with Line Number Only for release versions of the static library.

Even if you don't use the debugger to debug, don't disable your clients' from doing so.


Additional Include Directory

This tip concerns the static library writer (you) rather than the clients.

Say, you have a version of the library installed on your machine. You are working on a new version of the library. Somehow, the changes you make to the header do not seem to have any effect.

Depending on how you set up your project structure, the above can happen if you added the old version of the library to the compiler environment search path. The compiler is confused between the local header and the one in the old version. One remedy is to add the local directory to the compile path so the local header is always used first. This is done by adding a .(a dot which stands for local directory) in Project->Settings->C++->Preprocessor->Additional Include Directories or using (/I".").

Tip: Add the local directory in the additional compiler search path.


Conclusion

There are probably a few minor flags that I didn't mention (e.g. struct alignment size). Normally, those flags are not changed and even if they are, they should be done using pragmas not using compiler flags.

Keep a lookout for subtle errors. A lot of them can be avoided by good foresight and experience.

Some quote I heard before:
    "Good judgment is gained from experience. Experience is gained from bad judgment."





Comments

From coach outlet,coach factory,coach factory outlet,coach outlet store,coach outlet store online,coach factory online,coach factory outlet online,coach outlet online satellite photos speculate louboutin,louboutin outlet,louboutin outlet italia that the test device is about 120-150 meters long, about 80 abercrombie and fitch,abercrombie,abercrombie and fitch UK meters long electromagnetic rail, tory burch outlet,tory burch,tory burch handbags,tory burch shoes,tory burch sale,toryburch,tory burch sandals,toryburch.com,tory burch flip flops able to build such a large scale polo ralph lauren outlet online,ralph lauren,polo ralph,polo ralph lauren,ralph lauren outlet,polo shirts,ralph lauren outlet online,polo ralph lauren outlet,ralphlauren.com,polo outlet,ralph lauren polo experimental vans shoes,vans outlet,vans store,star wars vans shoes,cheap vans,vans shoes outlet,white vans,black vans,red vans,vans star wars,vans sneakers,vans shoes outlet store,vans sale,cheap vans shoes facilities "proves that China has been fully validated and mastered a large linear induction motors, advanced energy storage devices vans,vans scarpe,vans italia forced burberry outlet online,burberry,burberry outlet,burberry handbags,burberry factory outlet,burberry sale and air force,nike air force,air force 1,air force one,nike air force 1,nike air force one,air force one nike high-performance pulse generator key prada outlet,prada,prada handbags,prada sunglasses,prada shoes,prada bags technologies such as electromagnetic catapults. "Compared to the steam catapult, the advantages of electromagnetic catapult michael kors,michael kors canada,michael kors outlet,michael kors outlet canada is comprehensive, first accelerating force michael kors handbags,michael kors outlet,michael kors outlet online,michael kors,kors outlet,michael kors outlet online sale,michael kors handbags clearance,michael kors purses,michaelkors.com,michael kors bags,michael kors shoes,michaelkors,cheap michael kors uniform and controllable. "Nimitz" when C-13-1-type steam catapults louis vuitton outlet,louis vuitton outlet online,louis vuitton,louisvuitton.com,authentic louis vuitton,louis vuitton factory outlet,cheap louis vuitton on the emission oakley sunglasses,cheap oakley sunglasses,oakley sunglasses cheap,oakley vault,oakleys,oakley.com,sunglasses outlet,cheap oakley,oakley outlet,cheap sunglasses,oakley prescription glasses,fake oakleys,oakley sunglasses outlet,oakley glasses,oakley store,fake oakley,oakley sale,cheap oakleys,discount oakley sunglasses level can birkin bag,hermes belt,hermes handbags,hermes birkin,hermes bags,birkin bags reach the maximum overload 6g, while the average acceleration of the kate spade handbags,kate spade,kate spade outlet,katespade whole trip nike air max,air max,air max pas cher,air max one,air max 90,air max france is just a little more than 2g. F / A-18 fighter pilots often ridicule C-13-1 in the rear section catapult air max,nike air max themselves often do not have the louis vuitton,borse louis vuitton,louis vuitton sito ufficiale,louis vuitton outlet aircraft engine longchamp,longchamp bags,longchamp uk acceleration "to force." With the speed and cylinder volume increases, the vast majority of the expansion of chi flat iron,chi hair the superheated steam for steam energy to accelerate and promote themselves, and gas expansion increased hollister,hollister uk,abercrombie,abercrombie fitch,abercrombie and fitch the proportion of steam required increase in volume after the establishment party relationships. Steam catapult length and cylinder volume almost reached its limit, until the end of the ejection stroke, steam basically only accelerated piston aircraft little help.Electromagnetic catapult launch thrust segment is not the kind of sudden explosive impact of steam, air max,nike air max,air max 90,nike air max 90,air max 1 the peak air jordan,jordan pas cher,air jordan pas cher,nike air jordan,air jordan france overload can nfl jerseys,jerseys,baseball jerseys,cheap jerseys,nba jerseys,hockey jerseys,basketball jerseys,jerseys from china,cheap nfl jerseys be reduced from 6g to 3g, which polo ralph lauren outlet,ralph lauren,polo ralph,polo ralph lauren,ralph lauren outlet,polo shirts,ralph lauren outlet online,polo ralph lauren outlet online,ralphlauren.com,polo outlet,ralph lauren polo will not only help toms outlet to extend ray ban,rayban,occhiali ray ban the life of the herve leger,herve leger dresses aircraft, the pilot's body to feel is a good improvement. In addition, since the electromagnetic sac longchamp,longchamp,longchamps,longchamp pas cher,sac longchamp pas cher,longchamp pliage,longchamp soldes,sac longchamps,longchamp france catapult launch acceleration and length does not matter, in addition to being the aerodynamic drag and friction affect, louboutin,christian louboutin,red bottom shoes,louboutin shoes,red bottoms,louboutin outlet,christian louboutin shoes,christian louboutin outlet,red bottom shoes for women,louboutins the catapult into the iphone 6 cases,iphone 6 case,iphone 5c cases,iphone 5s cases,iphone cases,iphone case,iphone 5 cases,iphone 4s cases,iphone 4 cases,ipad cases,ipad mini cases,ipad air cases,galaxy s5 cases,galaxy s4 cases,phone cases early part of the last paragraph of the basic acceleration will not fluctuate too much, which is a gradual decline over the steam catapult more and more efficiency. According to calculations, the average acceleration of the same, electromagnetic catapults than nike free,nike free run,free running,free run,nike running steam catapults make aircraft more than 8-15% load. hogan,hogan outlet,scarpe hogan,hogan sito ufficiale,hogan interactive When the ejection of different weights, different models takeoff speed, electromagnetic catapult catapult also flexible and accurate converse pas cher,converse control of ralph lauren,ralph lauren uk,ralph lauren outlet,polo ralph lauren outlet energy through the computer.Electromagnetic catapult ejection hollister,hollister canada,abercrombie and fitch,abercrombie,abercrombie and,abercrombie kids,af efficiency is easton bats also higher than the steam michael kors outlet online,michael kors,kors outlet,michael kors outlet,michael kors handbags,michael kors outlet online sale,michael kors handbags clearance,michael kors purses,michaelkors.com,michael kors bags,michael kors shoes,michaelkors,cheap michael kors catapult, to enhance the nike huarache,nike huaraches,nike air huarache sense that major combat aircraft, such as christian louboutin shoes,louboutin shoes,louboutin outlet,louboutin,christian louboutin,red bottom shoes,red bottoms,christian louboutin outlet,red bottom shoes for women,louboutins the use vanessa bruno,sac vanessa bruno,vanessa bruno sac,vanessa bruno pas cher,cabas vanessa bruno,sac vanessa bruno en solde,sac vanessa bruno pas cher of electromagnetic catapult aircraft carrier-based Sunrise Ford momentum true religion from "Nimitz" coach outlet,coach factory outlet,coach outlet store,coach factory,coach outlet store online,coach factory online,coach factory outlet online,coach outlet online class of 120 jimmy choo,jimmy choo shoes,jimmy choo outlet,jimmy choo handbags sorties to 160 sorties: new balance shoes,new balance,balance shoes,new balance outlet,new balance store,new balance store locator,new balance shoes for women,joe's new balance outlet,newbalance,newbalance.com,new balance walking shoes Sunrise peak momentum from the air max,nike air max,air max 2015,nike air max 2015,air max 90,airmax,air max 95,nike air max 90 original 220-240 vehicles to 270 vehicles. At the same time, the hollister,abercrombie absence of pandora jewelry,pandora charms,pandora bracelet,pandora bracelets,pandora rings,pandora jewelry store locator,pandora charm,pandora charms clearance,pandora store,pandora jewelry outlet store,pandora jewelry sale online a large cylinder, the volume of the electromagnetic catapult is relatively michael kors outlet,michael kors outlet online,michael kors,kors outlet,michael kors handbags,michael kors outlet online sale,michael kors handbags clearance,michael kors purses,michaelkors.com,michael kors bags,michael kors shoes,michaelkors,cheap michael kors small, supra shoes very beneficial to the swarovski uk "Liaoning" class platform installation.In recent years, China's electronic technology valentino shoes,valentino,valentinos weaponry rapid progress. By 2020 there converse,scarpe converse,converse italia,converse sito ufficiale,converse all star six years, Ma Weiming nike trainers,nike trainers uk academician and his beats by dre,dr dre,beats headphones,dre beats,beats by dr,beats by dr dre,beats audio,dr dre beats,dre headphones,beats by dre headphones,beats by dr. dre,cheap beats research team there kate spade outlet,kate spade,katespade,kate spade handbags is still time, the oakley,occhiali oakley,oakley italia Chinese navy as a steam catapult can cross this threshold, so the first one sac louis vuitton,louis vuitton,louis vuitton pas cher,sac louis vuitton pas cher,louis vuitton france domestic carrier mounted montre pas cher directly on 2-3 sets of electromagnetic catapults, "Liaoning "saturation volume level karen millen dresses on the 2nd carrier longchamp,longchamp handbags,longchamp outlet,longchamp bags,long champ aircraft ship will likely rise to around 65, the amount of actual service burberry outlet online,burberry outlet,burberry,burberry handbags,burberry factory outlet,burberry sale carrier aircraft louis vuitton,louis vuitton bags,louis vuitton handbags,louis vuitton uk can reach the size of 55, plus three times now mulberry,mulberry handbags,mulberry outlet,mulberry bags,mulberry uk and can be loaded oakley sunglasses,oakley vault,oakley sunglasses cheap,oakleys,oakley.com,sunglasses outlet,cheap oakley,cheap oakley sunglasses,oakley outlet,cheap sunglasses,oakley prescription glasses,fake oakleys,oakley sunglasses outlet,oakley glasses,oakley store,fake oakley,oakley sale,cheap oakleys,discount oakley sunglasses with petrol bombs attendance combat new michael kors outlet store,michael kors outlet,michael kors outlet online,michael kors,kors outlet,michael kors handbags,michael kors outlet online sale,michael kors handbags clearance,michael kors purses,michaelkors.com,michael kors bags,michael kors shoes,michaelkors,cheap michael kors carrier machine. Ship "new wine in old bottles" operational capability hollister,abercrombie,hollister sito ufficiale,abercrombie italia,abercrombie and fitch,abercrombie outlet of the aircraft carrier is expected to rolex watches,replica watches,omega watches,rolex watches for sale,replica watches uk,fake rolex reach "Forrester" class and the "Kitty Hawk" grade level.Nuclear fantasy and realityIf the "Liaoning" on the 2nd class destroyers finally tiffany and co jewelry,tiffany and co outlet,tiffany and co,tiffany's,tiffanys,tiffany co,tiffany jewelry adopted electromagnetic catapult, you bottega veneta,bottega,bottega veneta outlet must do the appropriate upgrade rolex watches,rolex,watches for men,watches for women,omega watches,replica watches,rolex watches for sale,rolex replica,rolex watch,cartier watches,rolex submariner,fake rolex,rolex replica watches,replica rolex its power systems, electromagnetic catapults need strong power protection, vans,vans pas cher,vans soldes especially louboutin outlet,louboutin,christian louboutin,red bottom shoes,louboutin shoes,red bottoms,christian louboutin shoes,christian louboutin outlet,red bottom shoes for women,louboutins in high-voltage power supply capacity of the instantaneous ejection time, which is probably "Liaoning" No existing power system can not provide."Admiral Kuznetsov" was thomas sabo uk adopted four TB-12 true religion steam turbine and eight supercharged boiler. TB-12's predecessor is TB-8, and TB-8 is just the louboutin,chaussure louboutin,louboutin pas cher,chaussures louboutin,chaussure louboutin pas cher,louboutin france domestic 051 destroyers host Domestic Model 453 type air max,nike air max,air max pas cher,air max one,air max 90,air max france steam turbine. TB-8 coach purses,coach handbags,coach bags power is 36,000 horsepower, 051 destroyers then adopted two sets of TB-8 steam turbine speed was 38 knots, power TB-12 increased to 45,000 horsepower. In addition, China converse shoes,converse,converse.com,converse sneakers,converse outlet introduced the "modern" GTZA-674 type steam turbine installed on class instyler ionic styler,instyler destroyer is improved longchamp handbags,longchamp,longchamp outlet,longchamp bags,long champ TB-12's.TB-8 from the mcm handbags,mcm bags,mcm backpack,mcm outlet TB-12 and michael kors outlet online sale,michael kors,kors outlet,michael kors outlet,michael kors handbags,michael kors outlet online,michael kors handbags clearance,michael kors purses,michaelkors.com,michael kors bags,michael kors shoes,michaelkors,cheap michael kors then GTZA-674, China in the series steam turbine has accumulated a wealth of technology, use and maintenance experience. If the steam timberland outlet turbine on "Liaoning" was used for the localization model, I believe, at least up to the level of GTZA-674, michael kors,sac michael kors,michael kors pas cher,sac michael kors pas cher,michael kors france with louis vuitton,louis vuitton canada,louis vuitton outlet,louis vuitton outlet online a coach outlet store online,coach outlet store,coach outlet total output power of north face,the north face,north face uk,north face jackets,north face outlet,northface four steam turbines for 200,000 horsepower. The power tiffany and co jewelry,tiffany and co outlet,tiffany and co,tiffany's,tiffanys,tiffany co,tiffany jewelry system maintains no catapult "Liaoning" No high speed sailing is no problem, but if it is using a new electromagnetic catapult aircraft on some stretched up. "Ford" was only four electromagnetic catapult while charging it takes about north face jackets,north face,the north face,northface,north face outlet,north face jackets clearance,the north face outlet 200,000 horsepower, if the "Liaoning" on the 2nd class destroyers to install ray ban sunglasses outlet,ray ban sunglasses,ray ban,rayban,ray bans,ray ban outlet,ray-ban,raybans,ray ban wayfarer,ray-ban sunglasses,raybans.com,rayban sunglasses,cheap ray ban three links of london uk sets of the same power sac guess,guess pas cher,guess,guess collection,sac a main guess of the electromagnetic catapult, the required electrical energy that is over 16,000 horsepower; hollister taking into steam turbine power generation process in about 50% of energy nike air max,air max,air max 2015,nike air max 2015,air max 90,airmax,air max 95,nike air max 90 consumption, only lululemon outlet,lululemon,yoga pants,lulu lemon,lulu.com,lululemon.com three catapult babyliss pro,babyliss maximum prada handbags,prada,prada sunglasses,prada shoes,prada outlet,prada bags required lancel power accounted for about 16% of the total power of the ship, which is bound to gucci outlet,gucci handbags,gucci belts,gucci shoes,gucci,gucci belt,gucci sunglasses,gucci bags,cheap gucci seriously ghd,ghd hair,ghd hair straighteners,ghd straighteners affect the use of aircraft speed and lacoste,polo lacoste,lacoste pas cher,lacoste.fr,lacoste soldes,survetement lacoste other electrical equipment.More insanity,insanity workout,insanity workout calendar,insanity calendar,insanity workout schedule vigilance is needed, longchamp outlet,longchamp,longchamp handbags,longchamp bags,long champ whether it is "Admiral Kuznetsov" was still in India, "Vic Rama Tia" No, they are installed roshe run,nike roshe,roshe runs,nike roshe run,nike roshes TB-12 ray ban sunglasses,ray ban sunglasses outlet,ray ban,rayban,ray bans,ray ban outlet,ray-ban,raybans,ray ban wayfarer,ray-ban sunglasses,raybans.com,rayban sunglasses,cheap ray ban steam turbine and auxiliary boilers occurred many times in the course of giuseppe zanotti,giuseppe zanotti outlet major accident. Russia louis vuitton,louis vuitton outlet online,louis vuitton outlet,louisvuitton.com,authentic louis vuitton,louis vuitton factory outlet,cheap louis vuitton has north face outlet,north face,the north face,northface,north face jackets,north face jackets clearance,the north face outlet a rich pandora jewelry,pandora charms,pandora bracelet,pandora bracelets,pandora rings,pandora jewelry store locator,pandora charm,pandora charms clearance,pandora store,pandora jewelry outlet store,pandora jewelry sale online ship with a steam turbine development and experience like this, the reliability of the hermes,sac hermes,hermes pas cher,sac hermes pas cher TB-12 based on the development of China-made large true religion ship with the first soccer shoes,nike mercurial generation of louboutin,christian louboutin,louboutin shoes,louboutins,louboutin uk,christian louboutin uk,red bottom shoes,red bottoms,louboutin outlet,christian louboutin shoes,christian louboutin outlet steam turbines also needs further examination.Needless to say, the best use of the wedding dresses,wedding dress,dresses for wedding,bride dresses,dresses for weddings,wedding dresses uk,cheap wedding dresses,vintage wedding dresses,monsoon wedding dresses,lace wedding dresses,wedding dresses for older brides,wedding dresses 2014 electromagnetic catapult powered aircraft carrier lululemon,lululemon canada,lululemon outlet canada,lululemon outlet online program is certainly similar to "Ford" class nike roshe run,roshe run,nike roshe,rosh run,roshe run pas cher,nike roshe france nuclear-powered + all-electric propulsion tn pas cher,nike tn,nike tn pas cher,nike tn requin,tn requin,tn requin pas cher system. Nuclear coach factory outlet,coach factory,coach factory outlet online,coach factory online energy juicy couture can provide catapult inexhaustible; wedding dresses,prom dresses,bridesmaid dresses,evening dresses,beach wedding dresses,cheap wedding dresses,homecoming dresses,prom dresses,wedding dresses and the all-electric propulsion system eliminates ray ban pas cher,ray ban,rayban,lunette ray ban pas cher the mechanical transmission mechanism, the reactor will supply energy into louis vuitton outlet stores,louis vuitton outlet online,louis vuitton,louis vuitton outlet,louisvuitton.com,authentic louis vuitton,louis vuitton factory outlet,cheap louis vuitton electrical energy directly to the catapult, propeller motors, timberland,timberland pas cher,chaussure timberland pas cher,timberland france as well as other power line carrier terminal, without the huge transmission layout is very conducive to aircraft interior design, handling and juicy couture outlet maintenance is also very convenient. Of course, louis vuitton outlet online,louis vuitton,louis vuitton outlet,louisvuitton.com,authentic louis vuitton,louis vuitton factory outlet,cheap louis vuitton the all-electric propulsion system for the energy chanel handbags,chanel bags,chanel sunglasses,chanel purses,chanel outlet conversion efficiency is generally better than mechanical transmission, with burberry,sac burberry,burberry pas cher,sac burberry pas cher,burberry france endless nike blazer,blazer nike,nike blazer pas cher energy asics,asics gel,asics running,asics running shoes,asics shoes,asics gel nimbus,asics gel kayano,asics gt reactors ralph lauren,polo ralph lauren,ralph lauren outlet,ralph lauren italia,ralph lauren sito ufficiale is undoubtedly the most suitable partner.Real possibility of view, "Liao in" class on the 2nd ship a "nuclear" nike roshe,roshe run,nike roshe run,roshe runs power system louis vuitton,sac louis vuitton,louis vuitton pas cher,sac louis vuitton pas cher,louis vuitton france is unlikely. Although Russia discuss the "Admiral Kuznetsov" No. overhaul conversion program, the dress had been discussed nuclear power, eventually dropped. I reebok outlet,reebok,reebok skyscape,reebok shoes will not speak on the basic platform "Liaoning" was doing true religion so beating ferragamo shoes,ferragamo,salvatore ferragamo,ferragamo belts,ferragamo belt,ferragamo outlet the availability of the technical feasibility of internal transformation, China I am afraid there is no ready-made high-performance aircraft for use nike shoes,nike outlet,nike factory,nike store,nike factory outlet,nike outlet store,cheap nike shoes,nike sneakers pressurized water reactor. The new reactors on 094 strategic nuclear submarines mac cosmetics,m a c cosmetics,mac makeup,maccosmetics.com reportedly good performance, celine handbags,celine bag,celine bags there has been no reliable sources have new balance pas cher,new balance,new balance femme confirmed that the boat has been the longchamp,sac longchamp,longchamps,longchamp pas cher,sac longchamp pas cher,longchamp pliage,longchamp soldes,sac longchamps,longchamp france formation of combat, the maturity of its power systems doubtful. We should also not forget that the abercrombie and fitch,abercrombie and,abercrombie,abercrombie kids,abercrombie fitch,abercrombie.com risk ray ban sunglasses uk of north face,the north face,north face pas cher,north face soldes,north face france boats reactors ship with p90x,p90x3,p90x workout,p90x workout schedule,p90x workout sheets,p90x 3,p90x2 a great change, oakley sunglasses cheap,cheap oakley sunglasses,oakley sunglasses,oakley vault,oakleys,oakley.com,sunglasses outlet,cheap oakley,oakley outlet,cheap sunglasses,oakley prescription glasses,fake oakleys,oakley sunglasses outlet,oakley glasses,oakley store,fake oakley,oakley sale,cheap oakleys,discount oakley sunglasses the air max US nuclear aircraft carriers and nuclear submarines had never shared michael kors,michael kors uk,michael kors handbags,michael kors bags reactor; France has the world's top nuclear technology in michael kors outlet,michael kors,kors outlet,michael kors handbags,michael kors outlet online,michael kors outlet online sale,michael kors handbags clearance,michael kors purses,michaelkors.com,michael kors bags,michael kors shoes,michaelkors,cheap michael kors the construction of "Charles de swarovski jewelry Gaulle" when granted directly jordan shoes,jordans,air jordan,jordan retro,jordan 11,jordan xx9,jordan 6,new jordans,air jordans,cheap jordans,retro jordans,jordan retro 11,jordan 5,air jordan 11,jordans for sale,jordan 4,jordan 1,jordan future,jordan 3,jordan 12,michael jordan shoes,air jordan shoes,air jordan retro to the intended Reactor "Triumph" class gucci,borse gucci,gucci sito ufficiale,gucci outlet strategic nuclear submarine used louis vuitton handbags,vuitton handbags,louis vuitton bags,louis vuitton purses in the hollister,abercrombie,abercrombie fitch,hollister france,hollister pas cher,abercrombie and fitch,hollister pas cher "Charles de Gaulle". nike air max,air max,air max 90,nike air max 90,air max 1 K15 natural circulation integral nike free,free run,nike free run,nike free pas cher,nike free run pas cher,nike free france PWR technology really advanced in the "Triumph" class did a great job, but mounted on the "Charles de Gaulle" pandora charms,pandora uk,pandora bracelet,pandora rings,pandora,pandora sale,pandora bracelets,pandora jewellery,pandora ring,pandora charm,pandora earrings,pandora jewelry,pandora necklace,pandora charms uk is the "acclimatization", resulting oakley pas cher,oakley,oakley soldes,lunette oakley pas cher,oakley france in "Charles de Gaulle" period is prolonged, the installation of mont blanc,montblanc,mont blanc pens pressure cabin dead weight after barely put to use, ralph lauren,polo ralph lauren,ralph lauren pas cher,polo ralph lauren pas cher,ralph lauren france but still in the sea trials and follow-up service during soccer jerseys,soccer jersey,usa soccer jersey,football jerseys times of nike free,free running,nike free run,nike free 5.0,free running 2,nike running shoes,nike free trainer,nike free trainer 5.0,free runs,free run 5.0 exposure problems.


Note: Please offer only positive, constructive comments - we are looking to promote a positive atmosphere where collaboration is valued above all else.




PARTNERS