最近在使用python 处理一些图形的东西。

实现:对一些512 的图进行像素遍历RGBA 变量, 查询通道不是 255 255 255 颜色 的矩阵,进行切图到空白

之前使用c#进行 确实快10 倍左右, python 要等很长时间,

c++ 我自己不上手,所以想用python 调用c#dll 。程序使用cpython 写的,后来查询 可以使用ironpython 和dotnet进行交换,

这些不过,家里测试没有问题,可以到公司 总是不能创建工程, 我也是醉了。

https://social.msdn.microsoft.com/Forums/zh-CN/80e5d654-caf4-48c8-9c19-a6e2ae5f22bb/vs

安装这个 我也找不出来什么问题。

搞了半天, 想这样  c++ 使用CLR 封装 c# dll  python 在调用c++的dll  这样一来下路不知道效率如何?

就开始了

using System;
using System.Collections.Generic;
using System.Text; namespace sen
{
public class Class1
{
public string each ()
{ return "ceshi";
}
}
}

然后c++ 进行封装

#pragma once

using namespace System;
#using "..\debug\sen.dll"
using namespace sen ;
using namespace std ; namespace lr { public ref class Clname
{
// TODO: 在此处添加此类的方法。
public: char* send ()
{
Class1 ^ci= gcnew Class1(); System::String ^c = gcnew System::String(ci->each());
char* ss = (char*)(void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(c);
//printf (ss);
return ss ;
} };
}

编译是通过了。

麻烦出现在下一步, c++ 给python 调用还要绑定  看了看很麻烦

http://blog.csdn.net/fxjtoday/article/details/6059874

最后感觉有时间在研究吧, 感觉这样一部下路 在没有纯python快 那真实费力不讨好

、因为就是一个调用关系 ,后来想想 干脆使用  c#控制台

给python调用

using System;
using System.Collections.Generic;
using System.Text; namespace ConsoleApplication6
{
class Program
{
static int Main(string[] args)
{
if(args.Length>){
foreach (string i in args)
{
Console.WriteLine(i);
}
}
if (args[]=="")
{ Console.WriteLine();
return ;
}else
{
return ;
} }
}
}

编译成exe 给python 调用

#coding:utf-8

print "ss"

#from ctypes import*

#filename = r"N:\E\egret\Labs\projects\lr\Debug\lr.dll"

#func  = cdll.LoadLibrary(filename)
#print (func.send)
import os cmd = r"F:\c#\c#2005\ConsoleApplication6\ConsoleApplication6\bin\Debug\ConsoleApplication6.exe"
v = os.system("%s %s %s" % (cmd ,"dd" , "11dd"))
print "*************"
print type(v)

结果还是比较满意的,

ss
dd
11dd
*************
<type 'int'>

同时写好的 给max 脚本调用

cc = "F:\\c#\\c#2005\\ConsoleApplication6\\ConsoleApplication6\bin\\Debug\\ConsoleApplication6.exe"
c = DOSCommand (cc+ " sdf"+ "") "F:\c#\c#2005\ConsoleApplication6\ConsoleApplication6\bin\Debug\ConsoleApplication6.exe"
50

使用dos 作为中介实现cpython 和c# 交互的更多相关文章

  1. 深入浅出设计模式——中介者模式(Mediator Pattern)

    模式动机 在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题: 系统结构复杂:对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他 ...

  2. 【转】设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)

    设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 1.概述 在面向对象的软件设计与开发过程中,根据"单一职责原则",我们应该尽量将对象细化,使其只负责或呈现单一的职 ...

  3. 设计模式之中介者模式(Mediator)

    中间者模者模式原理:中介者维持所有要交互对象的指针或者对象,所有对象维持一个中介者的指针或者对象. #include <iostream> #include <string> ...

  4. Java中介者设计模式

    中介者设计模式是一种很常见的设计模式,当中我们最为熟悉的就是我们的MVC框架.当中的C作为控制器就是一个详细的中介者,它的作用是把业务逻辑(Model),和视图(Viwe)隔离开来.使M V协调工作, ...

  5. 设计模式 ( 十六 ): Mediator中介者模式 -- 行为型

    1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中. 对于一个模块或者系统,可能由很多对象构成,而且这些对象 ...

  6. 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)

    设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各 ...

  7. 行为类模式(五):中介者(Mediator)

    定义 定义一个中介对象来封装系列对象之间的交互.中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互. 试想一下,如果多个类之间相互都有引用,那么当其中一个类修改 ...

  8. C#设计模式:中介者模式(Mediator Pattern)

    一,什么是中介者模式(Mediator Pattern)? 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.比如:如果我们实现两个人的交互,难道我们要定义两个对象 ...

  9. 设计模式之GOF23中介者模式

    中介者模式Mediator 场景:公司中各个部门需要交互,通过中介总经理进行交互 核心: 如果一个系统中对象之间的联系成网状结构,对象之间多对多,将导致关系极其复杂,这些对象统称为“同事关系” 我们可 ...

随机推荐

  1. CentOS7.3下yum练手安装Nginx

    安装Nginx # 查看相关信息 yum info nginx yum info httpd # 移除 httpd,也就是 Apache yum remove httpd -y # 安装 nginx ...

  2. (12/24) css进阶:sass文件的打包和分离

    1.安装sass打包的loader 这里需要 在项目目录下用npm安装两个包.node-sass和sass-loader,(也可以使用cnpm安装) 因为sass-loader依赖于node-sass ...

  3. jQuery id模糊 选择器 批量处理

    $("span[id^='province_']").each(function(index,obj){        $(obj).bind("click", ...

  4. Delphi 浏览器WebBrowser

    WebBrowser1.Navigate(URL); while WebBrowser1.busy do Application.ProcessMessages; while WebBrowser1. ...

  5. 【转】.net 实现 语音搜索(仅限WebKit内核浏览器)

    <input type="text" class="text" name="value_2" id="value_2&quo ...

  6. ubuntu16.04 dpkg强制安装 teamviewer

    dpkg遇到安装有依赖,而依赖的包有无法安装的时候,可以试试强制安装: .90154_amd64.deb 虽然报错,但是安装后还是可以使用. 如果使用: .90154_amd64.deb 提示下面错误 ...

  7. 遍历python字典几种方法

    遍历python字典几种方法 from: http://ghostfromheaven.iteye.com/blog/1549441 aDict = {'key1':'value1', 'key2': ...

  8. Eclipse安装Svn无法连接问题

    在Eclipse市场上安装完SVN插件后连接SVN时出现以下错误: SVN: '0x00400006: Validate Repository Location' operation finished ...

  9. java工程中不能存在多个数据库连接jar包

    java工程中不能存在多个数据库连接jar包 比如存在mysql-java-connector.jar的,放入mssqlserver.jar就会产生冲突.只能存在一个类型的jar包.

  10. 移去OleContainer的黑边框

    //禁止双击打开word编辑 olecontainer1.AutoActivate := aaManual; //禁止右键菜单 olecontainer1.AutoVerbMenu := False; ...