Need help for creating custom table on wordpress

I guess, you can use the following function

public function pre_install()   {
global $wpdb;
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$sql="
   CREATE TABLE IF NOT EXISTS `".$wpdb->prefix."prelauncher`
   (
      id mediumint(9) NOT NULL auto_increment,
      username tinytext NOT NULL,
      email varchar(255) NOT NULL,
      PRIMARY KEY  (`main_id`)
 );";
dbDelta($sql);
}

and than your activation hook.

register_activation_hook( __FILE__, array('main_class','pre_install'));

I dont think the $pre_db_versions – required for the this table creation.

I hope this will solve your problem.