Está en la página 1de 23

Curso Bsico de

ObjectARX
Por: Jose Luis Madrid Villa

Bienvenidos al Curso Bsico de ObjectARX y Visual C++


Para iniciar, les comentare que el Desarrollo de Aplicaciones en ObjectARX, es un
Tema complejo, este comentario no es para desanimar a quienes no cuentan con
la experiencia y los conocimientos bsicos requeridos para seguir este Curso, y si
tiene la intencin de hacerles saber, que por lo menos en el inicio, se requiere de
tiempo y dedicacin en el Desarrollo de cualquier Rutina.
El objetivo inicial de este Curso Bsico, es el de unificar los conocimientos de los
participantes, para posteriormente planear un curso intermedio, en el cual
avancemos sobre pasos firmes y homogneos con el grupo participante, por lo
tanto les aconsejo; seguirlo progresivamente.
El curso esta planeado en entregas que irn aumentando en grado de dificultad,
sin embargo, siempre existir la posibilidad de regresar o ampliar cualquier tema a
solicitud de quienes lo crean conveniente.
Hasta donde me es posible, tratare de explicar cada Tema en forma clara y
precisa, si en alguna ocasin no lo consiguiera, les agradecera que me lo hagan
saber para corregir cualquier confusin ocasionada por mi falta de claridad.
Con la finalidad de Complementar el desarrollo del curso, en cada parte del mismo
y paralelamente, se proporcionaran los conocimientos tanto de ObjectARX como
de Visual C++, en cuanto a este ultimo, su aplicacin se enfocar estrictamente
para su uso en ObjectARX, por lo tanto si alguien esta interesado en ahondar
sobre cualquier tema en particular le sugiero que lo haga en forma independiente
de este curso.
Requisitos recomendados en cuanto a conocimientos:

C/C++/Visual C++.
AutoLISP/VisualLISP.
Visual Basic/VBA para AutoCAD.
Programacin Orientada a Objetos.

Como lo mencione anteriormente, estos conocimientos se pueden ir obteniendo


paralelamente con el desarrollo del Curso.

constructor-3d.com
dicca2005@yahoo.com.mx

Requisitos mnimos indispensables de Software y Hardware:

AutoCAD 2004/2005/2006 instalado.


Visual C++.NET 2002, (Ver. 7.0) de Microsoft.
ObjectARX 2004/2005/2006 de acuerdo a la versin de AutoCAD
instalada.
Windows XP Professional, Service Pack 1 or 2/Windows 2000, Service
Pack 4
Pentium III 800 Mhz mnimo recomendado.
256 MB RAM.
Monitor 1024 x 768 con VGA Color Verdadero (mnimo)

Es necesario aclarar que el curso se enfocara a la versin 2006, sin embargo


podr adaptarse fcilmente a las versiones 2004/2005.
Visual C++.NET versin 7, es la recomendada por AutoDESK para desarrollar en
ObjectARX, sin embargo, se podrn utilizar versiones posteriores, aceptando el
riesgo de las complicaciones que se pudieran tener en cuanto a la compatibilidad,
sobre todo en la compilacin de las aplicaciones.
El Kit de Desarrollo de ObjectARX (SDK), se puede obtener sin costo desde la
siguiente pgina:
www.objectarx.com
Posteriormente se indicara la forma de instalarlo correctamente.
Al final de cada entrega se proporcionaran referencias y enlaces para ahondar en
cada tema expuesto.

constructor-3d.com
dicca2005@yahoo.com.mx

Capitulo 1

Conceptos Bsicos.
Como funciona AutoCAD internamente.
Antes de iniciar con el Tema de ObjectARX, conoceremos conceptos bsicos
acerca del funcionamiento de AutoCAD.
AutoCAD funciona por medio de una Base de Datos en la cual organiza y
almacena diferentes tipos de Objetos. La forma en que lo hace, es Manteniendo
Contenedores que utilizan Procedimientos y Mtodos los cuales manipulan
Objetos que son del mismo tipo, por ejemplo: Entidades (Lneas, Textos, Arcos,
etc.), Estilos de Texto, Capas, Estilos de Acotaciones, etc. Por lo tanto un Dibujo
de AutoCAD es una coleccin de Objetos almacenados en una Base de Datos,
que contiene la informacin mnima para que cada Objeto mantenga su definicin.
Estos Objetos pueden ser grficos o Estructuras no graficas, por ejemplo: Tablas
de Smbolos y Diccionarios.
Las Entidades son un tipo especial de Objetos dentro de la Base de Datos y
cuentan con representacin grafica.
Las Tablas de Smbolos son Contenedores usados para almacenar Objetos en la
Base de Datos, por ejemplo: la Tabla de Capas (layer table), contiene los
registros de la Tabla de Capas.
Los Diccionarios al igual que las Tablas de Smbolos, tambin son Contenedores
usados para almacenar Objetos en la Base de Datos, su diferencia estriba en que
en este tipo de Contenedor se puede almacenar prcticamente cualquier tipo de
informacin.

constructor-3d.com
dicca2005@yahoo.com.mx

Figura 1.1
Componentes de la Base de Datos de AutoCAD

Que es ObjectARX.
ObjectARX es un ambiente de Programacin que contiene un conjunto de
Libreras para desarrollar Aplicaciones para AutoCAD usando C++, facilita el
acceso a las estructuras de la Base de Datos de AutoCAD, ya que el acceso es
directo, tambin facilita el acceso al Sistema Grfico, permite definir comandos
nativos dentro de AutoCAD, entre otras cosas, adicionalmente nos permite crear
Objetos Personalizados en la Base de Datos para Aplicaciones especificas.
ObjectARX es bsicamente una DLL (biblioteca de enlaces dinmicos), tambin
soporta el Desarrollo de Aplicaciones complejas.

constructor-3d.com
dicca2005@yahoo.com.mx

Con ObjectARX utilizaremos bsicamente 3 tipos de objetos:


o Entidades: son objetos que poseen representacin grafica. Por ejemplo:
Lneas, Textos, Crculos, etc.
o Contenedores: son objetos especiales para manejar y almacenar
Colecciones. Por ejemplo: la Tabla de Capas (layer table), la Tabla de Block
(block table), etc.
o Objetos: son objetos sin representacin grafica. Por ejemplo: layouts,
Groups, etc.

Grupos de Clases ObjectARX.


Las Clases son categoras de Objetos que definen todas las propiedades comunes
de los diferentes Objetos que le pertenecen (Objetos miembros). En la entrega 2
conoceremos los conceptos bsicos de la Programacin Orientada a Objetos,
mientras tanto conoceremos los grupos de clases y funciones que forman la base
del ambiente de ObjectARX.
AcRx: Clases para vincular una aplicacin y para registro e identificacin en
tiempo de ejecucin.
AcEd: Clases para registro de comandos nativos de AutoCAD y para notificacin
de eventos.
AcDb: Clases de base de Datos de AutoCAD.
AcGi: Clases de Grficos para dibujo de entidades de AutoCAD.
AcGe: Clases de Utilidades para operaciones geomtricas comunes.

Libreras requeridas para Vincular aplicaciones ObjectARX:


AcRx:
AcEd:
AcDb:
AcGi:
AcGe:

acad.lib, rxapi.lib, acdb16.lib


acad.lib, rxapi.lib, acedapi.lib, acdb16.lib
acad.lib, rxapi.lib, acdb16.lib
acad.lib, rxapi.lib, acdb16.lib
acad.lib, rxapi.lib, acge16.lib, acdb16.lib

constructor-3d.com
dicca2005@yahoo.com.mx

Instalando el SDK de ObjectARX


Despus de haber bajado y extrado los archivos del SDK de ObjectARX, en la
carpeta de instalacin de ObjectARX localizamos las siguientes Carpetas que
contienen:
inc
lib
redistrib
classmap
arxlabs
docs
samples
utils

Archivos header de ObjectARX.


Archivos libreras de ObjectARX.
Archivos DLLs utilizadas por Aplicaciones ObjectARX.
La jerarqua de clases en un dibujo de AutoCAD.
Un Tutorial que ser expuesto y comentado aqu.
Archivos de Documentacin y Ayuda en lnea.
Archivos de Ejemplos de Aplicaciones ObjectARX.
Utileras varias, incluye la carpeta ObjARXWiz que contiene el
instalador de ArxWizards (asistentes para ObjectARX).

Para instalar los Asistentes de ObjectARX: localizamos el instalador


ArxWizards.msi en la Carpeta \utils\ObjARXWiz. Despus de instalar el
asistente de ObjectARX y al Abrir VC++.NET, encontraremos una nueva Barra de
Herramientas que corresponde a ObjectARX.

constructor-3d.com
dicca2005@yahoo.com.mx

Comenzando
Creacin de nuestro primer programa, el clsico HELLO WORLD
En este primer ejercicio, aprenderemos a crear y configurar un Proyecto y a
registrar un comando para AutoCAD.
Existen dos formas para la creacin de aplicaciones de ObjectARX, una es la
forma manual y la otra por medio del Asistente de ObjectARX.
En este primer ejercicio utilizaremos la forma manual, as es que no se preocupen
mucho por memorizar todo el procedimiento, ya que el objetivo principal del
ejercicio, es el de tener nuestro primer contacto con el ambiente de desarrollo de
ObjectARX y VC++. En la siguiente entrega conoceremos al Asistente de
ObjectARX, el cual nos ayudara a crear Aplicaciones en forma rpida y fcil y a
partir del ejercicio No. 2, tendremos dos Secciones, una para explicar la parte
correspondiente a ObjectARX y la otra para la parte de programacin de VC++
utilizada en cada ejercicio.
Para seguir el ejercicio, utilizaremos el Tutorial STEP 1 que se incluye en el SDK
de ObjectARX, y que se muestra a continuacin traducido al espaol, despus de
descomprimir el ZIP del SDK de ObjectARX, el original en Ingles lo encontraran en
la Carpeta:
<Carpeta de instalacin de ObjectARX>\arxlabs\ObjectARXLabs.html,

Los pasos que deberemos completar son los siguientes:

Crear un Nuevo Proyecto.


Configurar el Compilador.
Configurar el Vinculador.
Definimos Directorios.
Agregar Cdigo al Proyecto.
Crear archivo Def para exportar la funcin principal a AutoCAD.
Generar la Aplicacin.
Cargar el comando dentro del ambiente de AutoCAD.
Ejecutar el Comando.

constructor-3d.com
dicca2005@yahoo.com.mx

Configuracin del Proyecto y Registro de un Comando


Introduccin
Como crear un nuevo Proyecto ObjectARX en Visual C++.NET
1. En Visual C++ .NET Seleccionar "File" -> "New" -> "Project".

Figure 1.1 Iniciando un Proyecto Nuevo


2. Hacer clic en "VC++ Projects" en "Project Types:" en el Cuadro de
dialogo "New Project"
3. Seleccionar "Win32 Project en lista de Templates.
4. Proporcionar el Nombre del proyecto en la caja Name, por ejem.
"Step01
5. Proporcionar la localizacin de la Carpeta donde se quiere guardar, y hacer
click en "OK". Esto invocar a el dilogo de Asistente de aplicaciones
WIN 32

constructor-3d.com
dicca2005@yahoo.com.mx

Figura 1. 2 Seleccionando plantillas de proyectos Win32


6. Seleccionar la solapa "Application Settings" en el asistente. Seleccionar
"DLL" para la opcin "Application type".

Figura 1. 3 - Asistente de aplicacin, especificando una aplicacin tipo DLL

constructor-3d.com
dicca2005@yahoo.com.mx

7. Hacer Click en "Finish" para crear el proyecto

Configuracin de Compilador
1. Invocar el Explorador de Soluciones en VC++.NET usando el men:
"View"->"Solution Explorer" alternativamente se puede usar el atajo:
Ctrl+Alt+L.
2. Seleccionar el proyecto Step01" en el Explorador de Soluciones. Dar click
con botn derecho en el nodo Project en el Explorador de Soluciones y
seleccionar "Properties" en el men de botn derecho de mouse, con esto
se mostrar el dilogo de la pgina de propiedades para el proyecto.

Figura 1.4 - Invocando Propiedades del Proyecto en el Explorador de


Soluciones

constructor-3d.com
dicca2005@yahoo.com.mx

3. En la lista desplegable "Configuration:" seleccionar "All Configurations".


Esto asegura que los cambios que hagamos se aplicarn a todas las
configuraciones
4. Seleccionar el nodo "C/C++"->" General" y seleccionar Warning Level a
Level 1 y "Detect 64-Bit Portability Issues" a NO. Hacemos esto para
suprimir los avisos, a los cuales nosotros no necesitamos poner atencin
porque no afectan de ninguna forma a este proyecto. Hacer clic en OK
para aplicar y cerrar el dilogo. Similarmente, despus de que se tienen
hechos los cambios de cualquier propiedad en el dialogo de las Pginas de
Propiedad, podemos usar el botn OK para aplicar y cerrar

Figura 1.5 - Invocando Propiedades de Proyecto en el Explorador de


Soluciones

5. Hacer clic en el nodo "C/C++" en el rbol "Configuration Properties".


Seleccionar "Code Generation". Seleccionar "Runtime Library". Asignar la
propiedad "Multi-threaded DLL (/MD), seleccionando la propiedad en la
lista desplegable.

constructor-3d.com
dicca2005@yahoo.com.mx

Figura 1.6- Propiedades de Proyecto Configurando la Librera Runtime


6. Seleccionar el elemento "General" del nodo "C/C++" en "Additional
Include Directories" agregar la ruta de la carpeta Include del SDK de
ObjectARX

Figura 1.7 Especificando directorios adicionales Include

constructor-3d.com
dicca2005@yahoo.com.mx

Alternativamente tambin se puede especificar la localizacin de archivos


header y de archivos de libreras usando el dilogo Options (disponible en el
men Tools->Options). Esto nos asegura que VC++ .NET buscar los archivos
header y de libreras de ObjectARX en esas rutas, y a partir de este momento
ya no se tendrn que proporcionar esas rutas para cada proyecto de ObjectARX.
Para definir las rutas; seleccionar el elemento "VC++ Directories" en el nodo
"Projects" en el dilogo Options. En la lista desplegable "Show Directories
for:" Seleccionar "Include files". Agregar un nuevo elemento a la lista y
proporcionar la ruta de los archivos header de ObjectARX. Similarmente
proporcionar la ruta de los archivos de librera.

Figura 1.8 - Especificando directorios Include en el dilogo Options

constructor-3d.com
dicca2005@yahoo.com.mx

Configuracin del Vinculador (Linker)


1. Seleccionar el nodo "Linker" -> "Input". En el elemento "Additional
Dependencies", agregar las siguientes librerias: "rxapi.lib acdb16.lib
acge16.lib acad.lib acedapi.lib"

Figura 1.9- Especificando dependencias adicionales


2. Seleccionar el nodo "Linker" -> "General". En el elemento "Additional
Library Directories", agregar la ruta de la librera del SDK de ObjectARX

Figura 1.10- Especificando rutas de libreras adicionales.

constructor-3d.com
dicca2005@yahoo.com.mx

3. En el elemento "Output File", cambiar la extensin del archivo de salida de


".dll" a ".arx".

Fig. 1.11- Especificando el nombre de archivo de salida


La configuracin de nuestro proyecto ya est completa, ahora agregaremos el
cdigo requerido para hacer que se muestre "Hello World" en la lnea de
Comando de Autocad

constructor-3d.com
dicca2005@yahoo.com.mx

Agregando Cdigo al Proyecto


1. Desde el Menu, seleccionar "Project" -> "Add New Item" (Ctrl+Shift+A).
2. En el Dialogo "Add New Item" seleccionar "C++ File (.cpp)".
3. Teclear "HelloWorld" en la caja "Name:". Hacer Click en "Open".
Primero, se requiere incluir dos archivos de encabezado header de ObjectARX:
aced.h y rxregsvc.h. Esos son Archivos header para definiciones de
aplicaciones Rx y acceso de C a Servicios especficos del Editor de AutoCAD
(aced.h) y el header para las funciones de utilidad acrxXXX (rxregsvc.h).
Adicionar esto como se indica a continuacin:
#include "stdafx.h"
#include <aced.h>
#include <rxregsvc.h>

Despus declaramos dos funciones:


initApp()
- que ser llamada por AutoCAD cuando la aplicacin se cargue y:
unloadApp() - que ser llamada cuando la aplicacin se descargue.
Referirse a la funcin acrxEntryPoint(), mas adelante para observar como esas
funciones son llamadas por AutoCAD. Adicionar las lneas:
void initApp();
void unloadApp();

Ahora declaramos nuestra funcin para visualizar "Hello World" en la lnea de


comando de AutoCAD. Adicionar:
void helloWorld();

Ahora definimos la funcin initApp(). Esta funcin registra un Nuevo comando con
el mecanismo de comandos de AutoCAD. Este Nuevo comando se convertir en
un punto de entrada (entry point) adicional dentro de nuestra aplicacin:
void initApp()
{
// register a command with the AutoCAD command mechanism
acedRegCmds->addCommand("HELLOWORLD_COMMANDS",
"Hello",
"Bonjour",
ACRX_CMD_TRANSPARENT,
helloWorld);
}

constructor-3d.com
dicca2005@yahoo.com.mx

Para detallar lo tocante al Macro acedRegCmds y a el mtodo addCommand()


(de la clase AcEdCommandStack), referirse al archivo de la ayuda en lnea de
ObjectARX. El primer argumento de addCommand() es el nombre del grupo de
comandos (este incluye un solo comando en nuestro caso). El segundo argumento
es el nombre de comando global/sin traducir. El tercer argumento es el nombre
para el mismo comando local/traducido. El cuarto argumento es la bandera de
comando (note que aqu definimos un comando transparente, significa que el
comando puede ser invocado mientras otro comando esta activo). Finalmente, el
ltimo argumento es el puntero para la funcin que ser llamada por nuestro
comando. En C++ este es el nombre de la funcin misma.
A continuacin definimos la funcin unloadApp(). Esta es la funcin que remover
nuestro grupo de comandos, y que remover tambin nuestro comando. Ya que
los comandos registrados en AutoCAD son puntos de entrada adicionales dentro
de nuestra aplicacin, es absolutamente necesario remover estos cuando la
aplicacin se descarga. Adicionar:
void unloadApp()
{
acedRegCmds->removeGroup("HELLOWORLD_COMMANDS");
}

Ahora definimos nuestra funcin helloWorld(); la funcin acutPrintf() es la


equivalente de C printf redireccionada a la lnea de comando de AutoCAD.
Adicionar:
void helloWorld()
{
acutPrintf("\nHello World!");
}

Ahora necesitamos definir la funcin ms importante de aplicaciones ObjectARX.


Todas las aplicaciones ObjectARX tienen un punto de entrada principal que es
usado para pasar mensajes: la funcin acrxEntryPoint(). Recuerde que una
aplicacin ObjectARX es una DLL y no tiene un punto de entrada main().
AutoCAD llama a la funcin acrxEntryPoint() del modulo de ObjectARX para
pasar mensajes a la aplicacin.
El primer parmetro de acrxEntryPoint() es un miembro data de la clase AcRx
llamado msg que representa el mensaje enviado desde el ncleo de ObjectARX a
la aplicacin. Referirse a la Ayuda en lnea para detalles de los diferentes
mensajes que una aplicacin ObjectARX puede recibir desde AutoCAD.

constructor-3d.com
dicca2005@yahoo.com.mx

En esta aplicacin muy simple, necesitamos ser notificados cuando la aplicacin


se carga o descarga con el propsito de registrar o des-registrar nuestro comando
"hello". En el primer caso llamaremos a nuestra funcin initApp(); en el Segundo
caso llamaremos a nuestra funcin unloadApp().
El Segundo parmetro de acrxEntryPoint() es un indicador o puntero opaco para
datos pasados a diferentes funciones, Tales como las funciones lock y unlock
(estos datos cambian dependiendo del mensaje pasado por AutoCAD).
Por omisin todas las aplicaciones estn locked, lo que significa que una vez
cargadas no pueden ser descargadas. Ya que nuestra aplicacin es muy simple
(esta no define objetos que AutoCAD y otra aplicaciones hagan referencia a ellos,
excepto nuestro propio comando), Podemos confiadamente desbloquear
(unlock) nuestra aplicacin para que sea descargable, siempre y cuando
removamos primero nuestro comando, lo cual conseguimos con nuestra funcin
unloadApp().
Tambin por omisin, aplicaciones ObjectARX no son MDI (Referirse a la ayuda
en lnea para detalles de MDI). Las aplicaciones necesitan registrarse as mismas
explcitamente para ser MDI usando la funcin global
acrxRegisterAppMDIAware()
NOTA: Registrar una aplicacin como MDI no es en si misma suficiente para ser
aplicaciones efectivamente MDI. El criterio que necesita reunir se describe en
detalle en la documentacin en lnea de ObjectARX.
Ya que nuestra aplicacin es muy simple (no usa el concepto de Document y no
interacta con la Base de Datos del dibujo de AutoCAD), podemos confiadamente
registrar nuestra aplicacin como MDI usando la funcin global
acrxRegisterAppMDIAware(). Adicionar:
extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
switch (msg)
{
case AcRx::kInitAppMsg:
acrxDynamicLinker->unlockApplication(pkt);
acrxRegisterAppMDIAware(pkt);
initApp();
break;
case AcRx::kUnloadAppMsg:
unloadApp();
break;
default:

constructor-3d.com
dicca2005@yahoo.com.mx

break;
}

return AcRx::kRetOK;
}

Finalmente, necesitamos exportar la funcin acrxEntryPoint() para que AutoCAD


pueda accesarla. Hay muchas formas para hacer esto: una consiste en crear un
archivo de definicin (.def), como se explica a continuacin.

constructor-3d.com
dicca2005@yahoo.com.mx

Creando el archivo Definition (.DEF)


1. En el Menu "Project" -> "Add New Item" (Ctrl+Shift+A).
2. En el dialogo "Add New Item" seleccionar la Plantilla "Def File (.def)".
3. Teclear "ArxProject" en la caja "Name:". Hacer Click en "Open"
Agregar la siguiente informacin en el archivo nuevo. Todas las aplicaciones
ObjectARX deben exportar por lo menos dos funciones: acrxEntryPoint y
acrxGetApiVersion.

LIBRARY Step01
EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE

Nuestro proyecto esta listo para ser Generado (built). Si se ha seguido el


presente tutorial correctamente se obtendrn: 0 errors y 0 warnings.
NOTA: Si se obtiene un AVISO del Linker LNK4099 para las libreras rxapi.lib y
acedapi.lib durante la Construccin. Ignorar dichos AVISOS.
Cargar hello.arx en AutoCAD y teclear "hello" para ejecutar nuestro comando.
Para cargar hello.arx, seleccionar uno de los cuatro mtodos siguientes:
1. Simplemente dragar el archivo desde el Explorer a la ventana de AutoCAD.
2. Usar el comando de AutoCAD "ARX" y teclear "Load" en la lnea de
comando.
3. Desde el Men de AutoCAD, Tools -> "Load Application...".
4. Usar el comando de AutoCAD "APPLOAD".

Una vez que el comando ha sido cargado, teclear "hello" o "bonjour" en la lnea
de comando y se mostrara el mensaje "Hello World!".

constructor-3d.com
dicca2005@yahoo.com.mx

Con el ejemplo previo, se podrn haber dado cuenta que en Visual C++, todo
deber estar definido, esto es algo que siempre debemos tener en mente. Ahora
analizaremos cada una de la partes de este ejemplo sencillo adems se
proporcionan las referencias correspondientes para ahondar en los temas
expuestos.
1. Creamos una aplicacin de tipo Win32 a.
1.1 Configuramos la Aplicacin Win32 como tipo DLL.
2. Configuramos el Compilador b.
2.1 Definimos Propiedades de Configuracin.
2.1.1 Configuracin General.
2.1.2 Configuracin para C/C++
2.1.2.1 Configuracin General para C/C++
2.1.2.2 Configuracin para Generacin de Cdigo.
2.1.3 Configuramos el Vinculador.
2.1.3.1 Configuracin General del Vinculador.
2.1.3.2 Configuracin de Entrada.
3. Definicin de Directorios de VC++.
4. Agregar Cdigo al Proyecto
4.1 Crear el Archivo .cpp de C++ c.
5. Crear archivo .def para exportar la funcin principal a AutoCAD d.
6. Generar la Aplicacin e.

Enlaces:
a. http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/vcc
ore/html/vcgrfoverviewwin32appwizard.asp
b. http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/vsi
ntro7/html/vxurfSolutionExplorerDialog.asp
c. http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/vcc
ore/html/vcurfprogramorcontrolsourceheaderfiles.asp
d. http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/vcc
ore/html/_core_export_from_a_dll_using_..def_files.asp
e. http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/vcc
ore/html/vcurfprogramorcontrolsourceheaderfiles.asp

constructor-3d.com
dicca2005@yahoo.com.mx

Otros Enlaces de inters:


http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/vccore/html/vcgr
foverviewwin32appwizard.asp
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/MTJ_2578.asp#
M1

constructor-3d.com
dicca2005@yahoo.com.mx

También podría gustarte