There are some people that find it impossible to lose any weight and then there's you. It seems no matter how much you eat and how little you move, you can't put any weight or muscle onto your body. The main rule to follow when gaining weight is to eat more than you burn. That, combined with a good resistance training program will yield weight gain in the form of muscle. Unfortunately, some people have a very fast metabolism that quickly adapts to the amount of calories you take in. The result is that however high your calorie intake is, you'll find it extremely difficult to gain weight.
Gaining weight is easier said than done. A lot of people workout hard, eat a lot and still see no gains. The mistake that most people make is not eating enough. You may think you're eating a lot, but if you're not gaining any weight, you're not eating an adequate amount of calories. Start out by estimating how many calories you burn per day by using the calorie needs calculator. This tool will tell you how many calories your body needs each day just to maintain your current weight.
You might have already tried this method. You took the number a calculator gave you, upped your intake by 500/day and waited. You waited and nothing happened. You stayed at the same weight or even lost some. Frustrated, you quickly gave up. Unfortunately, you need to try this again. Take the number you got from the calculator and start your weight gaining diet by eating 500 more calories than you burn everyday. For example, if you burn 2,500 calories per day according to the calculator, make sure to eat at least 3,000 per day.
Track Your Weight
Weigh yourself each day at the same time to track your progress. If at the end of the first week you haven't gained any weight, or are gaining weight too slowly, up your daily calorie intake by an additional 500. Keep monitoring your weight on a daily basis and adjust your calorie intake at the end of each week to reflect the changes you see on the scale.
Most people don't want to gain weight, they want to gain muscle. To gain muscle, you need to create a calorie surplus (as outlined above) and engage in a strength training routine. While you workout, your muscles will get damaged. While this sounds counterproductive, the damage is repaired when you rest and the result is a bigger and stronger muscle. Only by continuously pushing your muscles will they grow. Keep track of the weights you lift in the gym to see if you're actually improving. If you're not, you may need to eat more or change your routine around.
Any cardio when you're trying to gain weight should be limited, especially for a hard gainer such as yourself. Cardio burns a high amount of calories which is the exact opposite of what you need to do if your metabolism is already burning a large amount of calories. Doing any sort of cardio will require you to eat even more which might be hard to do given the amount you're already taking in.
The Bottom Line
Patience is very important, especially if you've had trouble gaining weight in the past. Know that if you follow the main rule (eating more than you burn) you will gain weight. Your problem is that the amount you burn is very high. Keep eating and working out and eventually you'll see the weight start to come on.