Getting Custom Field value in WP_Query

You need to define the $post global variable if you want to access its ID property:

function excateg($categ) {
  global $post;
  $recent = new WP_Query("cat=$categ&showposts=1");
  while($recent->have_posts()){
    $recent->the_post();
    $imageurl = get_post_meta($post->ID, 'post-img', true);
  }
}

Use it after the_post() because that function will set up that variable.

Alternatively you can use the $recent->post property instead of $post->ID