Visual Studios构建和调试.cpp文件没有main()

时间:2015-06-16 02:01:07

标签: c++ assembly visual-studio-2013

教授刚给了我们一块c ++代码,以便了解Visual Studio中的调试窗口,但是在创建一个空白的win32控制台项目然后在.cpp文件中拖动时,我在尝试时会收到丢失的.exe错误消息调试。我到处寻找,没有人完全回答这个问题,我认为在这一点上它一定是代码的问题。

    // Test1.cpp : main project file.

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace System;

int accum = 0;

int sum (int x, int y)
{
  int t = x + y;
  accum += t;
  return t;
}

int calc (int op1, int op2, int opcode)
{
__asm
{
    mov ebx, opcode;
    test ebx, 0x01;
    jz sub_2;
    mov eax, op1;
    add eax, op2;
    jmp done;
sub_2:
    test ebx, 0x02;
    jz mul_3;
    mov eax, op1;
    sub eax, op2;
    jmp done;
mul_3:

done:
}
}


int main()
{
  int j = -2;
  int i = 0;
  int k = 0;
  float f = 0.0;
  char ch;
  int int_array[5];
  struct customer
  {
      char  name[20];
      short age;
      int   flag;
  };

  struct customer c[10];

  ch = 'A';

  ch |= 0x20;

  i = j * 10 / 5;
  if (i != 0)
      goto cont;
  j = i / 0;

cont: 

  i = sum ( j, -123 );

  printf("decimal = %d, hex = 0x%4x\n", i, i);

  for (i = 0; i < 5; i++)
  int_array[i] = i + 100;

  switch (i) {
      case 100:
        k = k / i;
        break;
      case 200:
        k = k % i;
        break;
      case 300:
      case 400:
        k += 256;
        break;
      default:
        f = 1.0;
  }
  printf("f = %f\n", f);

  strcpy(c[3].name,"Larry King");
  c[3].age  = 65;
  c[3].flag = 10;

  c[3].flag = c[3].flag << 5;
  strcpy(c[3].name,"Larry King                                ");

    k = calc(i, j, 1);
    k = calc(i, j, 2);

  return 0;
}

2 个答案:

答案 0 :(得分:0)

控制台程序必须有一个主。

答案 1 :(得分:0)

您的代码确实有一个main函数,它是工作所必需的。

正如你所说调试器返回一个'缺少可执行文件'的错误,我假设你没有编译代码,或者如果是这样,得到了一些可以在输出和错误窗口中找到的错误。

如果您正在使用单个源文件处理空白项目,我会说不需要使用预编译的头文件(可能会丢失,因此会导致错误)。

我建议你重建代码然后再试一次。如果错误仍然存​​在,请告诉我们输出窗口内容。