当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

C语言菜鸟问题

更新:03-19 整理:39baobao.com
字体:

[c语言迷宫问题]问题出在MazePath内部的e是一个局部变量,并且随着while循环其内容不断变化。保存一个局部变量的地址是没有意义的,函数返回后就被清除。解决的办法是动态分配QElemType类型的...+阅读

实际上这个问题很多情况下是由于路径设置的问题引起的,

“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,

你可以到相应的路径下找到这个应用程序。

因此问题可以按照以下方法解决:

方法一:

打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)”

—>“Directories(目录)”重新设置“Excutable Fils、Include Files、

Library Files、Source Files”的路径。很多情况可能就一个盘符的不同

(例如你的VC装在C,但是这些路径全部在D),改过来就OK了。

如果你是按照初始路径安装vc6.0的,路径应为:

executatble files:

C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin

C:\Program Files\Microsoft Visual Studio\VC98\BIN

C:\Program Files\Microsoft Visual Studio\Common\TOOLS

C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT

include files:

C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

library files:

C:\Program Files\Microsoft Visual Studio\VC98\LIB

C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB

source files:

C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC

C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC

如果你装在其他盘里,则仿照其路径变通就行(我就是装在D盘)。

关键是microsoft visual studio\ 后面的东西要相同。 主义大小写。

方法二:(这种较简单)

最简便的方法: 启动VC时不要用图形界面,通过在命令提示符下输入:Msdev /useenv运行(注意啦/前面有个空格).它会强制使系统环境变量全高设置成正确值.而且,只需要使用一次这样的方式运行VC,以后再次通过双击图标的方式启动也不会有问题.

本文来自CSDN博客,转载请标明出处(点击, ,可以查看)

VC中调用fortran有哪些方法

声明:以下内容为转载,希望有用 前几天,导师要求在vc下调用fortran,对于我来说真是头疼啊,呵呵,以前也没有接触过这样的工作。没有办法,只好先查找资料然后再做了。 还好网上这样的资料确实不少。虽然说都说得不是很详细,但是综合一下,也差不多了。基本上是搞懂了,现在只是把作为一个新手的需要注意到的问题,而哪些文献上没有谈到的说一下。以及说一下可能调用不成功的原因。首先给出一个例子,这里只给出fortran子程序的头,具体代码略去。fortran子函数: subroutine testvc(x1,x2,x3,x4,x5) !ms$if .not. defined(LINKDIRECT) !ms$attributes dllexport :: TESTVC !ms$endif real*4 x1 [value] real*4 x2 [value] real*4 x3 [value] integer*4 x4 [value] integer*2 x5 [reference]cc 程序代码 cc注意其中x1,...x5要声明为value或者reference传递C++程序代码如下:#i nclude "stdafx.h"#i nclude "windows.h"int main(int argc, char* argv[]){// printf("Hello World!\n"); float tec; float ktec; HINSTANCE hmydll; hmydll=LoadLibrary("testvc.dll"); if (hmydll!=NULL) printf("Load seccessful\n"); else printf("load unseccessful!\n"); void (_stdcall *testVC)(float x1,float x2,float x3,int x4,float *x5); TESTVC=(void(_stdcall *)(float x1,float x2,float x3,int x4,float *x5)) ::GetProcAddress(hmydll,_TESTVC20); if (TESTVC!=NULL) printf("Load TESTVC successful\n"); else printf("Load TESTVC unsuccessful\n"); TESTVC(31,114,2000,2002,,&x5); ktec=x5; printf("tec=%f\n",x5);需要注意到一下几点:一定要包含windows.h头文件,这是初学者往往没有注意到的,特别是对windows编程不熟悉的。

注意字节长度的传递,这点非常重要,如果长度和fortran下的不一致,调试和连接都没有错误,但是就是不能成功的执行。 要注意程序的自动检查,无论是载入库,还是载入fortran子函数,都要适当的检验一下是否载入成功,这样方便调试和查错! 还需要注意的,暂时忘记了,呵呵,记起来了在补充啊。

VC怎么实现广域网聊天程序

事实上,这不是编程的问题,而是属于一个网络的问题。

对于程序设计者而言,实现局域网通信和广域网通信,原理是一样的,甚至代码都可以不做改变。问题是,A子网的A1机器和B子网的B1机器是无法直接通信的。这个原因在于网络而不在于代码。

解决的方案是:

1、A子网和B子网分别做端口映射或者DMZ主机,如果是多级网络,则需要在每级的路由器上都要做映射,一直映射到让A1和B1暴露在internet下,那么此时,通信程序和局域网中没有任何差别。

上述方法条件太苛刻,虽然不需要改代码,但是需要客户设置网络环境,所以不实用。

2、做一个A子网能直接访问并且B子网也能直接访问的服务器(就是说该服务器要通过端口映射等方法暴露到Internet,或者直接拥有一个internet的IP)。然后程序编成这样:客户端登录后,创建链接,服务端响应该链接请求并记录客户端ID,A1想和B1通信时,A1发消息给服务器,表明该消息要传给B1,服务器查询与B1客户端的链接,并将消息转发给B1客户。

------------------------------------------------

原则上是这样的,如果这两个网属于同一级,则是这样的。但是,由于Internet网络的复杂性,比如,某广域网可能是另一个更大的广域网的子网,相对与Internet来说,它只能算是一个比较大的“内网”,而且这个网的路由器是某网络运营商的,人家可不会给你做端口映射。如果是这样,你就无法直接通信。

你可以使用虚拟机和虚拟路由器什么的做一个实验。

A网路由器 WAN 10.0.0.1

LAN 192.168.0.1

A1机器IP 192.168.0.2 A机网关 192.168.0.1

B网路由器 WAN 10.0.0.2

LAN 192.168.1.1

B1机器IP 192.168.1.2

此时,10.0.0.x相当于上级网络(比如Internet),A网和B网都相当于一个广域网。路由器都不设置路由,此时A网和B网不能直接通信,但是,A网却能与B网路由器的WAN口通信。这是因为,对于A网来说,整个B网就一个IP地址,就是10.0.0.2,如果你不做端口映射,是无法访问B网内部的机器的,当然,双方路由器如果都做了路由设置,则可以直接通信,但是,Internet那么复杂,而且又有那么多子网,你不能每个都去设置路由。。因此。这就是原理,明白了么?

--------------------------------------------

你还是没明白。。。呃。。

本文地址:https://www.39baobao.com/show/29_48968.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

迷宫问题 C语言#include<stdio.h>int main(void){ int maze[100][100]; int MAZE[100][100]; int m,n; int p,q; printf("输入迷宫的行数m,列数n:\n"); scanf("%d%d",&m,&n); for(p=0;p<=n+1;p++)...

关于c语言迷宫问题首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如:对...

C语言求导问题#include <stdio.h> #include <malloc.h> void main() { int n; int i; int *p; printf("请输入最高指数\n"); scanf("%d",&n); p=(int *)malloc(sizeof(int)*n); printf("请依次输...

关于C语言考级问题前言,没有专门为C语言设立的考试,也就是说C语言目前没有考级这个概念。 C语言考试只有全国计算机等级考试和程序员软考,前一个是二级C语言,属于初学者范围,很容易过,自学半年过没...

c语言排序问题改了黑体部分,LZ错在mixum得不到更新,不更新它一直就是那个数组中最小的值啊 #include<stdio.h> #define N 10 int min(int m,int n); int a[N]; void getstr(); void main()...

c语言问题while执行语句问题执行了n次,为什么呢?? 从基础慢慢分析吧 while(布尔值)语句 这个你应该知道的吧 意思就是如果while里的 “布尔值” 是 “真” 的时候, “语句” 就会执行 如果是 “假” while 就...

语言制作FU助。源码注入问题怎么弄新手菜鸟求老鸟赐教.版本 2.支持库 eAPI.支持库 HtmlView.支持库 shell.支持库 spec.支持库 PBShell .程序集 窗口程序集1.程序集变量 输入法句柄 .子程序 __启动窗口_创建完毕 打开指定网址 (...

c语言递归问题:汉诺塔问题:假设最初有3个盘子,目标是柱子A移到柱子C上,柱子从左到右是A,B,C,我给你说明一下过程: 1.move(2,a,b);move(1,a,c);move(2,b,c);//将2个盘子从A移到B上,再将剩下的1个从A移到C上,最...

c语言strcpy问题c语言strcpy问题,C语言 strcpy的问题:先问你一个问题,你确定 这样的语句可以编译通过?至少 我使用的编译器是不能通过这样的语句的。因为 strcpy 你在修改"1234"这个常量区。这是...