Ⅰ C语言 编译、组件、执行
一般来说编译过后就成了基本上能执行的2进制代码。但是这些2进制代码并不完善,一个程序往往需要调用不止一部分的代码,所以需要把这些代码全部整合起来才能执行。
即时你的程序看起来只有一个文件,但是编译过后,多多少少里面至少会调用到一些操作系统功能,和其它的一些设置,所以依然需要组建这个过程把这个程序和这些系统默认的代码组建起来形成一个完成、单一的可执行文件。所以一般组建过程就包含了组建内部和外部代码,一般来说内部代码就是我说的系统预留的必要的一些代码(例如怎么具体完成把一些字符显示在屏幕上呀这些功能),而外部代码就是额外的调用自己写得或者别人写得其它程序功能(往往当你的程序调用了非C标准函数的时候)。
所以就算你的代码可以编译,但是可能因为组建并不成功(例如需要组建的代码本身有bug,或者丢失,或者版本不匹配),你的程序依然可能无法正确运行。
Ⅱ 用java写了个简单的GUI,编译成功,组件怎么都显示不出来,开发工具用的是myeclipes 8.5。
漏了
this.getContentPane().add(jp1);
this.getContentPane().add(jp2);
this.getContentPane().add(jp3);
Ⅲ 为什么这个C语言程序编译与组件都没错,而运行就出错了呢 #include<stdio.h> #
char *p="adfdf\0";p指针指向的是常量,数据存储在常量区,不允许修改的,所以运行会报错,编译连接没问题是因为语法上确实没问题。
char *p="adfdf\0";char *q="adfdf\0";你看一下p和q的值,其实是一样的
Ⅳ 请问此程序javac 编译不能通过是什么原因(路径没问题)
没问题啊,我过去运行都没问题。有一个警告而已。
如果你的编译确实有问题,看看你的JDK的版本,我用的是1.6。
补充回答:
看你的错误截图少写了个i
importjavax.swing.*你写成了mportjavax.swing.*
是不是的时候少了个字母啊?
继续补充:
你的问题太奇怪了,我把你代买下来,新建了java文件,在命令行里面javac是没问题的啊。截个图片给你看下吧。
Ⅳ 程序编译通过,为什么没结果,请高手看看
1.窗口类信息没填全.在注册窗口类之前加下面两行:
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
2.窗口类的名字是]="HELLO WORLD!",而你创建窗口用的是]="HELLO WORLD",少了个感叹号...加个感叹号,这样就出来了.
Ⅵ Java窗口有关问题!!编译通过,但是无法运行
import java.awt.FlowLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ComponntInWindow extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
JTextField text ;
JButton button ;
JCheckBox checkBox1 , checkBox2 , checkBox3 ;
JRadioButton radio1 , radio2 ;
JComboBox comboBox ;
ComponntInWindow(){
init() ;
setVisible(true) ;
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}
private void init() {
// TODO Auto-generated method stub
this.setLayout(new FlowLayout()) ;
this.add(new JLabel("文本框 ")) ;
text = new JTextField(10) ;
add(text) ;
add(new JLabel("按钮")) ;
button = new JButton("确定") ;
add(button) ;
add(new JLabel("选择框")) ;
checkBox1 = new JCheckBox("喜欢音乐");
checkBox2 = new JCheckBox("喜欢旅游");
checkBox3 = new JCheckBox("喜欢篮球");
add(checkBox1) ;
add(checkBox2) ;
add(checkBox3) ;
add(new JLabel("单选按钮")) ;
ButtonGroup group = new ButtonGroup();
radio1 = new JRadioButton("男") ;
radio2 = new JRadioButton("女") ;
group.add(radio1) ;
group.add(radio2) ;
add(new JLabel("下拉列表")) ;
comboBox = new JComboBox() ;
comboBox.addItem("音乐天地") ;
comboBox.addItem("武术天地 ") ;
comboBox.addItem("象棋乐园") ;
add(comboBox) ;
add(new JLabel("文本区:")) ;
JTextArea area = new JTextArea(6 , 12);
add(new JScrollPane(area)) ;
}
public static void main(String[] args) {
ComponntInWindow win = new ComponntInWindow() ;
win.setBounds(100, 100, 310, 260) ;
win.setTitle("常用组件");
}
}
Ⅶ C/C++写的DLL(带COM组件),通过编译,运行提示加载失败,内存位置无法访问!(有图)
检查 DLL 依赖
检查 是否 注册
Ⅷ vc++6.0环境下,程序的编译和组件都没有问题,却出现下面的情况,非常感谢哪位能帮忙解释一下
访问了不该访问的地址单元就会出现你所说的情况。一般数组越界等会导致你所说的问题,若程序不是很长的话,贴出来,马上可以找到原因的。
#include "stdio.h"
void sort(int*p,int n)
{
int i,j,t;
for(i=0;i<n;i++) //改过!改过!改过!改过!
{for(j=n-1;j>=i;j--) //改过!改过!改过!改过!
if(*(p+j)<*(p+j-1)){t=*(p+j);*(p+j)=*(p+j-1);*(p+j-1)=t;}}
}
void main()
{
int a[5]={3,4,2,5,1},i;
sort(a,5);
for(i=0;i<5;i++)
printf("%d ",*(a+i));
}
Ⅸ 编译可以通过,怎么没有结果
程序运行完了之后就关闭了,所以你看不见。
在后面加一个输入的语句等待你输入东西你就可以看到结果了。
Ⅹ 为什么我的这段程序编译通过,组件EXE文件成功但运行崩溃,谢谢~~
修改for循环条件为:
for(i=0; *p!=' ' && *p!='\0'; p++,i++)
修改后可以运行,但是结果可能不符合你的预期。你需要把你的程序的目的说出来,才能知道你要干什么。
还有,在编程能力有限的情况下,建议由易到难,先编一些小的程序。
#include <string.h>
#include <stdio.h>
#include <ctype.h>
judge_1();
judge_2();
int number=-1;
int k=0;
char cache[50];
int main()
{
int i=0;
char code[1000];
char *p=code;
for(i=0;i<=999;i++)
code[i]='\0';
for(i=0;i<=49;i++)
cache[i]='\0';
printf(" Please inupt a string\n");
scanf("%s",code);
do
{
while (*p==' ') p++;
if(*p=='\0') break;
for(i=0; *p!=' ' && *p!='\0'; p++,i++)
cache[i]=*p;
printf("strimed string are : %s\n", cache);
printf(" The conpiled codes are:\n\n");
k=0;
judge_1();
judge_2();
printf("(");
if(number!=-1)
printf("%d",number);
else printf("error");
printf(",");
for(i=0;cache[i]!='\0';i++)
printf("%c",cache[i]);
printf(")");
for(i=0;i<=49;i++)
cache[i]='\0';
}while(p!=&code[1000]);
getchar();
//return 0;
}
judge_1() //判断除字母和数字以外的内容
{ if(k==0)
{ if(strcmp(cache,"begin")==0) number=1;
if(strcmp(cache,"if")==0) number=2;
if(strcmp(cache,"then")==0) number=3;
if(strcmp(cache,"while")==0) number=4;
if(strcmp(cache,"do")==0) number=5;
if(strcmp(cache,"end")==0) number=6;
if(strcmp(cache,"+")==0) number=13;
if(strcmp(cache,"-")==0) number=14;
if(strcmp(cache,"*")==0) number=15;
if(strcmp(cache,"/")==0) number=16;
if(strcmp(cache,":")==0) number=17;
if(strcmp(cache,":=")==0) number=18;
if(strcmp(cache,"<")==0) number=20;
if(strcmp(cache,"<>")==0) number=21;
if(strcmp(cache,"<=")==0) number=22;
if(strcmp(cache,">")==0) number=23;
if(strcmp(cache,">=")==0) number=24;
if(strcmp(cache,"=")==0) number=25;
if(strcmp(cache,";")==0) number=26;
if(strcmp(cache,"(")==0) number=27;
if(strcmp(cache,")")==0) number=28;
if(strcmp(cache,"#")==0) number=0;
k=1;
}
}
judge_2()
{
if(k==1)
{ int i=0;
int a=0;
if(isalnum(cache[0])==1) number=10; //判断字母
for(i=0;cache[i]!='\0';i++)
{ if(isalnum(cache[i])==0)
a=0;
else a=1;
if(a=1) number=-1; break;
}
if(a=0) number=11;
}
}